Ë
    u™ãj| ã            
      ó  — d Z ddl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	 ddl
Z
ddlZddlZddlmZ ddlmZ ddlmZmZmZ e	rddlmZ ddlZddlmZ dd	lmZ  dd
l!m"Z" ddl#m$Z$m%Z%m&Z&m'Z'm(Z( d¢d£d„Z) G d„ d«      Z* G d„ d«      Z+ G d„ d«      Z,ejZ                  j\                   G d„ d«      «       Z/ejZ                  ja                  d ejb                  ddd¬«       ejb                  ddd¬«       ejb                  ddd¬«      g«      d„ «       Z2d „ Z3d!„ Z4ejZ                  jk                  ed"¬#«      d$„ «       Z6ejZ                  ja                  d%g d&¢«      d'„ «       Z7d(„ Z8d)„ Z9 G d*„ d+«      Z:d,„ Z;d-„ Z<d.„ Z=d/„ Z>d0„ Z?d1„ Z@ejZ                  ja                  d2d3i fd4i fd5d6d7ifd8d7dd9œfg«      d:„ «       ZAejZ                  ja                  d;g d<¢«      d=„ «       ZBejZ                  jk                  ed"¬#«      d>„ «       ZCd?„ ZDejZ                  jk                  ed@¬#«      dA„ «       ZEdB„ ZFdC„ ZGejZ                  j‘                  dD«      dE„ «       ZIdF„ ZJejZ                  ja                  dGdHdej–                  g«      dI„ «       ZLejZ                  ja                  dJi dKdLgidKdMdLgiidNdOig«      dP„ «       ZMejZ                  jk                  ed"¬#«      dQ„ «       ZNdR„ ZOdS„ ZPdT„ ZQdU„ ZRdV„ ZSdW„ ZTd¤dX„ZUd¥dY„ZVd¦dZ„ZWejZ                  jk                  ed"¬#«      d[„ «       ZXejZ                  jk                  ed"¬#«      d\„ «       ZYejZ                  jk                  ed"¬#«      ejZ                  ja                  dJd]d^d_iid`d^eZiig«      da„ «       «       Z[ejZ                  jk                  ed"¬#«      db„ «       Z\dc„ Z]dd„ Z^de„ Z_df„ Z`dg„ Zadh„ Zbd§di„Zcd¨dj„ZdejZ                  ja                  dkdlgdldmgg«      ejZ                  jk                  edn¬#«      do„ «       «       ZeejZ                  jk                  edp¬#«      dq„ «       ZfejZ                  jk                  edr¬#«      ds„ «       Zgdt„ ZhejZ                  jk                  edr¬#«      du„ «       ZiejZ                  jk                  edv¬#«      dw„ «       ZjejZ                  jk                  edx¬#«      dy„ «       ZkejZ                  ja                  dJdzd{id|d}ig«      d~„ «       ZlejZ                  ja                  dd€d�g«      ejZ                  jk                  ed‚¬#«      dƒ„ «       «       ZmejZ                  jk                  ed„¬#«      d…„ «       ZnejZ                  jk                  ed†¬#«      d‡„ «       Zodˆdd‰œ	 d©dŠ„Zpdªd«d‹„ZqejZ                  jk                  ed@¬#«      dŒ„ «       ZrejZ                  jk                  ed@¬#«      d�„ «       ZsejZ                  jk                  ed@¬#«      dŽ„ «       Ztd�„ ZuejZ                  ja                  d�ddˆg«      d‘„ «       ZvejZ                  jk                  ed@¬#«      ejZ                  ja                  d’g d“¢«      d”„ «       «       ZwejZ                  jk                  ed@¬#«      ejZ                  ja                  d•dˆd–g«      ejZ                  ja                  d’dˆd—g«      d˜„ «       «       «       ZxejZ                  jk                  ed@¬#«      d™„ «       ZyejZ                  jk                  ed@¬#«      dš„ «       Zzd¬d­d›„Z{ejZ                  ja                  dœd7d�g«      dž„ «       Z|ejZ                  ja                  dœd7d�g«      dŸ„ «       Z}ejZ                  ja                  dœd7d�g«      d „ «       Z~ejZ                  ja                  dœd7d�g«      d¡„ «       Zy)®af  
Tests for the parallel read_csv implementation (C engine, large local files).

The parallel path is enabled automatically when:
  - reading from a local uncompressed file path
  - using the C engine (the default)
  - not in iterator / chunked mode
  - file size >= _PARALLEL_READ_MIN_BYTES

We test correctness (parallel == serial) rather than performance.
é    )ÚannotationsN)ÚTYPE_CHECKING)Úparsers)ÚWASM)ÚEmptyDataErrorÚParserErrorÚParserWarning)ÚPath)Úreaders)Ú
ParserBase)Ú_can_parallelize_csvÚ_default_n_workersÚ_find_chunk_byte_offsetsÚ_find_data_start_offsetÚ_read_csv_parallelc                ó  — t         j                  j                  d«      }t        j                  |j                  dd|¬«      |j                  |«      |j                  g d¢|¬«      dœ«      }|j                  | d¬«       y	)
zDWrite a CSV with enough rows to split into multiple parallel chunks.é*   r   é'  ©Úsize)ÚfooÚbarÚbazÚqux)Úint_colÚ	float_colÚstr_colF©ÚindexN)ÚnpÚrandomÚdefault_rngÚpdÚ	DataFrameÚintegersÚchoiceÚto_csv)ÚpathÚn_rowsÚrngÚdfs       út/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/io/parser/test_parallel_read.pyÚ_make_large_csvr-   7   sj   € ä
�)‰)×
Ñ
 Ó
#€CÜ	�‰à—|‘| A v°F�|Ó;ØŸ™ FÓ+Ø—z‘zÒ">ÀV�zÓLñ	
ó
€Bð ‡I�Iˆd˜%€IÕ ó    c                  ó¬  — e 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j$                  j'                  dg d¢«      d„ «       Zej$                  j'                  dg d¢«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej$                  j'                  dddej:                  g«      d„ «       Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$d$„ Z%d%„ Z&d&„ Z'd'„ Z(y())ÚTestCanParallelizeCsvz)Unit tests for the eligibility predicate.c                óD   — dddd d d ddd d ddœ}|j                  |«       |S )NÚcFr   Úinfer)ÚengineÚengine_specifiedÚiteratorÚ	chunksizeÚnrowsÚskiprowsÚheaderÚ
skipfooterÚ	index_colÚusecolsÚcompression)Úupdate)ÚselfÚ	overridesÚbases      r,   Ú_kwdszTestCanParallelizeCsv._kwdsL   s=   € àØ %ØØØØØØØØØ"ñ
ˆð 	�‰�IÔØˆr.   c                óŠ   — |dz  }t        |«       |j                  t        dd«       t        || j	                  «       «      sJ ‚y )Núbig.csvÚ_PARALLEL_READ_MIN_BYTESé   )r-   ÚsetattrÚ_readersr   rC   ©r@   Útmp_pathÚmonkeypatchr(   s       r,   Útest_eligible_large_filez.TestCanParallelizeCsv.test_eligible_large_file]   s=   € Ø˜)Ñ#ˆÜ˜Ôà×ÑœHÐ&@À!ÔDÜ# D¨$¯*©*«,Ô7Ð7Ñ7r.   c                óž   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      sJ ‚y)	zCengine=None (the default) should be treated the same as engine='c'.údata.csvúa,b
1,2
úutf-8©ÚencodingrF   rG   N©r4   ©Ú
write_textrH   rI   r   rC   rJ   s       r,   Útest_accepts_default_enginez1TestCanParallelizeCsv.test_accepts_default_engined   sJ   € à˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ# D¨$¯*©*¸D¨*Ó*AÔBÐBÑBr.   c                ó²   — |dz  }|j                  dd¬«       t        |d¬«      5 }t        || j                  «       «      rJ ‚	 d d d «       y # 1 sw Y   y xY w)NrO   rP   rQ   rR   )rV   Úopenr   rC   )r@   rK   r(   Úfs       r,   Útest_rejects_file_like_objectz3TestCanParallelizeCsv.test_rejects_file_like_objectk   sV   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü�$ Ô)ð 	=¨QÜ+¨A¨t¯z©z«|Ô<Ð<Ð<Ð<÷	=÷ 	=ñ 	=ús   ¦AÁAc                ót   — t        d| j                  «       «      rJ ‚t        d| j                  «       «      rJ ‚y )Nzhttp://example.com/data.csvzs3://bucket/key.csv)r   rC   )r@   s    r,   Útest_rejects_urlz&TestCanParallelizeCsv.test_rejects_urlq   s3   € Ü'Ð(EÀtÇzÁzÃ|ÔTÐTÐTÜ'Ð(=¸t¿z¹z»|ÔLÐLÐLÐLr.   c                ó¨   — |dz  }|j                  d«       t        || j                  d¬«      «      rJ ‚t        || j                  d¬«      «      rJ ‚y )Nzdata.csv.gzó   fakeÚgzip©r>   r3   ©Úwrite_bytesr   rC   ©r@   rK   r(   s      r,   Útest_rejects_compressedz-TestCanParallelizeCsv.test_rejects_compressedu   sS   € Ø˜-Ñ'ˆØ×Ñ˜Ô!Ü'¨¨d¯j©jÀV¨jÓ.LÔMÐMÐMÜ'¨¨d¯j©jÀW¨jÓ.MÔNÐNÐNÐNr.   c                óh   — |dz  }|j                  d«       t        || j                  «       «      rJ ‚y )Nzdata.tarr_   rb   rd   s      r,   Útest_rejects_tarz&TestCanParallelizeCsv.test_rejects_tar{   s5   € ð ˜*Ñ$ˆØ×Ñ˜Ô!Ü'¨¨d¯j©j«lÔ;Ð;Ð;Ð;r.   c                ót   — |dz  }|j                  d«       | j                  ddi¬«      }t        ||«      rJ ‚y )NrO   r_   Úmethodr`   ra   )rc   rC   r   ©r@   rK   r(   Úkwdss       r,   Útest_rejects_dict_compressionz3TestCanParallelizeCsv.test_rejects_dict_compression‚   sB   € Ø˜*Ñ$ˆØ×Ñ˜Ô!Ø�z‰z x°Ð&8ˆzÓ9ˆÜ'¨¨dÔ3Ð3Ð3Ð3r.   c                óp   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   T)r6   ©rV   r   rC   rd   s      r,   Útest_rejects_iterator_modez0TestCanParallelizeCsv.test_rejects_iterator_modeˆ   s:   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀ$¨jÓ.GÔHÐHÐHÐHr.   c                óp   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   éè  )r7   rn   rd   s      r,   Útest_rejects_chunksizez,TestCanParallelizeCsv.test_rejects_chunksize�   s:   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀ4¨jÓ.HÔIÐIÐIÐIr.   c                óp   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   éd   )r8   rn   rd   s      r,   Útest_rejects_nrowsz(TestCanParallelizeCsv.test_rejects_nrows’   s:   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©j¸s¨jÓ.CÔDÐDÐDÐDr.   c                ó¬   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   ÚpythonrT   Úpyarrowrn   rd   s      r,   Útest_rejects_non_c_enginez/TestCanParallelizeCsv.test_rejects_non_c_engine—   sU   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀ¨jÓ.IÔJÐJÐJÜ'¨¨d¯j©jÀ	¨jÓ.JÔKÐKÐKÐKr.   c                óR  — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚t        || j                  d¬«      «      rJ ‚|j                  t        dd	«       t        || j                  d
¬«      «      sJ ‚t        || j                  d ¬«      «      sJ ‚y )NrO   rP   rQ   rR   ú)Úlineterminatorú|rF   rG   ú
)rV   r   rC   rH   rI   rJ   s       r,   Ú"test_rejects_custom_lineterminatorz8TestCanParallelizeCsv.test_rejects_custom_lineterminator�   s�   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7ô (¨¨d¯j©jÈ¨jÓ.MÔNÐNÐNÜ'¨¨d¯j©jÈ¨jÓ.LÔMÐMÐMà×ÑœHÐ&@À!ÔDÜ# D¨$¯*©*ÀD¨*Ó*IÔJÐJÐJÜ# D¨$¯*©*ÀD¨*Ó*IÔJÐJÑJr.   rS   )zutf-16zUTF-16Ú	utf_16_lezutf-32Ú	UTF_32_BEc                óž   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  |¬«      «      rJ ‚y )NrO   rP   rQ   rR   rF   rG   rU   ©r@   rK   rL   rS   r(   s        r,   Útest_rejects_utf16_32_encodingz4TestCanParallelizeCsv.test_rejects_utf16_32_encoding©   sO   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ(¨jÓ.KÔLÐLÐLÐLr.   )úlatin-1Úcp1252Ú	shift_jisÚasciic                óR  — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  |¬«      «      rJ ‚t        || j	                  d¬«      «      sJ ‚t        || j	                  d¬«      «      sJ ‚t        || j	                  d¬«      «      sJ ‚y )	NrO   rP   rQ   rR   rF   rG   ÚUTF8z	utf-8-sigrU   rƒ   s        r,   Útest_rejects_non_utf8_encodingz4TestCanParallelizeCsv.test_rejects_non_utf8_encodingµ   s�   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ(¨jÓ.KÔLÐLÐLÜ# D¨$¯*©*¸g¨*Ó*FÔGÐGÐGÜ# D¨$¯*©*¸f¨*Ó*EÔFÐFÐFÜ# D¨$¯*©*¸k¨*Ó*JÔKÐKÑKr.   c                ó  — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      rJ ‚t        || j	                  d ¬«      «      rJ ‚t        || j	                  d	¬«      «      sJ ‚y )
NrO   rP   rQ   rR   rF   rG   ú;;©Ú	delimiterz\s+rU   rJ   s       r,   Útest_rejects_python_engine_sepsz5TestCanParallelizeCsv.test_rejects_python_engine_sepsÃ   s‚   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ4¨jÓ.HÔIÐIÐIÜ'¨¨d¯j©jÀ4¨jÓ.HÔIÐIÐIÜ# D¨$¯*©*¸v¨*Ó*FÔGÐGÑGr.   c                ó  — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      rJ ‚t        || j	                  d	¬
«      «      rJ ‚t        || j	                  d¬
«      «      sJ ‚y )NrO   rP   rQ   rR   rF   rG   õ   Â§rŽ   õ   Â»)Ú	quotecharú'rU   rJ   s       r,   Ú(test_rejects_multibyte_sep_and_quotecharz>TestCanParallelizeCsv.test_rejects_multibyte_sep_and_quotecharÍ   s‚   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ4¨jÓ.HÔIÐIÐIÜ'¨¨d¯j©jÀ4¨jÓ.HÔIÐIÐIÜ# D¨$¯*©*¸s¨*Ó*CÔDÐDÑDr.   c                óž   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      rJ ‚y )	NrO   rP   rQ   rR   rF   rG   ú#©ÚcommentrU   rJ   s       r,   Útest_rejects_commentz*TestCanParallelizeCsv.test_rejects_comment×   sM   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ¨jÓ.EÔFÐFÐFÐFr.   c                óž   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      rJ ‚y )	NrO   rP   rQ   rR   rF   rG   ú\)Ú
escapecharrU   rJ   s       r,   Útest_rejects_escapecharz-TestCanParallelizeCsv.test_rejects_escapecharÝ   sM   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀD¨jÓ.IÔJÐJÐJÐJr.   c                óž   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  d¬«      «      rJ ‚y )	NrO   rP   rQ   rR   rF   rG   Úexcel©ÚdialectrU   rJ   s       r,   Útest_rejects_dialectz*TestCanParallelizeCsv.test_rejects_dialectã   sO   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀ¨jÓ.IÔJÐJÐJÐJr.   c                óT  — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  dg¬«      «      rJ ‚t        || j	                  d	¬«      «      rJ ‚t        || j	                  d ¬«      «      sJ ‚t        || j	                  d
¬«      «      sJ ‚y )NrO   rP   rQ   rR   rF   rG   Úa)Úparse_datesTFrU   rJ   s       r,   Útest_rejects_parse_datesz.TestCanParallelizeCsv.test_rejects_parse_datesì   s�   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀcÀU¨jÓ.KÔLÐLÐLÜ'¨¨d¯j©jÀT¨jÓ.JÔKÐKÐKÜ# D¨$¯*©*À¨*Ó*FÔGÐGÐGÜ# D¨$¯*©*À¨*Ó*GÔHÐHÑHr.   Ú
low_memoryFr   c                ó  — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  |¬«      «      rJ ‚t        || j	                  d¬«      «      sJ ‚t        || j	                  «       «      sJ ‚y )	NrO   rP   rQ   rR   rF   rG   ©r©   TrU   )r@   rK   rL   r©   r(   s        r,   Útest_rejects_low_memory_falsez3TestCanParallelizeCsv.test_rejects_low_memory_falseõ   s}   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©jÀJ¨jÓ.OÔPÐPÐPÜ# D¨$¯*©*À¨*Ó*EÔFÐFÐFÜ# D¨$¯*©*«,Ô7Ð7Ñ7r.   c                ót   — |dz  }|j                  dd¬«       t        || j                  ddi¬«      «      rJ ‚y )NrO   rP   rQ   rR   ÚanonT©Ústorage_optionsrn   rd   s      r,   Útest_rejects_storage_optionsz2TestCanParallelizeCsv.test_rejects_storage_options  sI   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'Ø�$—*‘*¨f°d¨^�*Ó<ô
ð 	
ð 
ð 
r.   c                ór  — |dz  }|j                  dd¬«       |j                  t        dd«       t        j                  }t        || j                  |j                  ¬«      «      rJ ‚t        || j                  |j                  ¬«      «      sJ ‚t        || j                  |j                  ¬«      «      sJ ‚y )NrO   rP   rQ   rR   rF   rG   ©Úon_bad_lines)
rV   rH   rI   r   ÚBadLineHandleMethodr   rC   Ú	BLHM_WARNÚ
BLHM_ERRORÚ	BLHM_SKIP)r@   rK   rL   r(   ri   s        r,   Útest_rejects_on_bad_lines_warnz4TestCanParallelizeCsv.test_rejects_on_bad_lines_warn  sŸ   € ð ˜*Ñ$ˆØ�‰˜¨wˆÔ7Ø×ÑœHÐ&@À!ÔDÜ×/Ñ/ˆÜ'¨¨d¯j©jÀf×FVÑFV¨jÓ.WÔXÐXÐXÜ# D¨$¯*©*À&×BSÑBS¨*Ó*TÔUÐUÐUÜ# D¨$¯*©*À&×BRÑBR¨*Ó*SÔTÐTÑTr.   c                óš   — |dz  }|j                  dd¬«       |j                  t        dd«       t        || j	                  «       «      rJ ‚y )NrO   z	
a,b
1,2
rQ   rR   rF   rG   rU   rJ   s       r,   Ú#test_rejects_blank_line_in_preamblez9TestCanParallelizeCsv.test_rejects_blank_line_in_preamble  sJ   € ð ˜*Ñ$ˆØ�‰˜°ˆÔ9Ø×ÑœHÐ&@À!ÔDÜ'¨¨d¯j©j«lÔ;Ð;Ð;Ð;r.   c                ór   — |dz  }|j                  dd¬«       t        || j                  d„ ¬«      «      rJ ‚y )NrO   rP   rQ   rR   c                ó   — | dk(  S )Nr   © )Úxs    r,   ú<lambda>zFTestCanParallelizeCsv.test_rejects_callable_skiprows.<locals>.<lambda>"  s   € ÈAÐQRÉF€ r.   ©r9   rn   rd   s      r,   Útest_rejects_callable_skiprowsz4TestCanParallelizeCsv.test_rejects_callable_skiprows  s;   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÑBR¨jÓ.SÔTÐTÐTÐTr.   c                ót   — |dz  }|j                  dd¬«       t        || j                  ddg¬«      «      rJ ‚y )NrO   rP   rQ   rR   r   é   rÁ   rn   rd   s      r,   Útest_rejects_list_skiprowsz0TestCanParallelizeCsv.test_rejects_list_skiprows$  s>   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀ1ÀaÀ&¨jÓ.IÔJÐJÐJÐJr.   c                ót   — |dz  }|j                  dd¬«       t        || j                  ddg¬«      «      rJ ‚y )NrO   rP   rQ   rR   r   rG   ©r:   rn   rd   s      r,   Útest_rejects_multi_level_headerz5TestCanParallelizeCsv.test_rejects_multi_level_header)  s>   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀÀAÀ¨jÓ.GÔHÐHÐHÐHr.   c                ó¬   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   r   ©r<   r¦   rn   rd   s      r,   Útest_rejects_index_colz,TestCanParallelizeCsv.test_rejects_index_col.  sU   € Ø˜*Ñ$ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©jÀ1¨jÓ.EÔFÐFÐFÜ'¨¨d¯j©jÀ3¨jÓ.GÔHÐHÐHÐHr.   c                óp   — |dz  }|j                  dd¬«       t        || j                  d¬«      «      rJ ‚y )NrO   rP   rQ   rR   FrÊ   rn   rd   s      r,   Útest_accepts_index_col_falsez2TestCanParallelizeCsv.test_accepts_index_col_false4  s:   € à˜*Ñ$ˆØ�‰˜¨wˆÔ7ä'¨¨d¯j©jÀ5¨jÓ.IÔJÐJÐJÐJr.   c                ót   — |dz  }|j                  dd¬«       t        || j                  ddg¬«      «      rJ ‚y )NrO   za,b,c
1,2,3
rQ   rR   r¦   Úb)r=   rn   rd   s      r,   Útest_rejects_usecolsz*TestCanParallelizeCsv.test_rejects_usecols;  s?   € Ø˜*Ñ$ˆØ�‰Ð(°7ˆÔ;Ü'¨¨d¯j©jÀ#ÀsÀ¨jÓ.LÔMÐMÐMÐMr.   c                ól   — |dz  }|j                  dd¬«       t        || j                  «       «      rJ ‚y )Nz	small.csvrP   rQ   rR   rn   rd   s      r,   Útest_rejects_small_filez-TestCanParallelizeCsv.test_rejects_small_file@  s5   € Ø˜+Ñ%ˆØ�‰˜¨wˆÔ7Ü'¨¨d¯j©j«lÔ;Ð;Ð;Ð;r.   N))Ú__name__Ú
__module__Ú__qualname__Ú__doc__rC   rM   rW   r[   r]   re   rg   rl   ro   rr   ru   ry   r   ÚpytestÚmarkÚparametrizer„   r‹   r�   r–   r›   rŸ   r¤   r¨   r    ÚFalse_r¬   r±   r¹   r»   rÂ   rÅ   rÈ   rË   rÍ   rÐ   rÒ   r¾   r.   r,   r0   r0   I   s0  „ Ù3òò"8òCò=òMòOò<ò4òIò
Jò
Eò
Lò
Kð ‡[�[×ÑØÒLóñMóðMð ‡[�[×Ñ˜ZÒ)TÓUñLó VðLòHòEòGòKòKòIð ‡[�[×Ñ˜\¨E°1°b·i±iÐ+@ÓAñ8ó Bð8ò
ò	Uò<òUò
Kò
Iò
IòKòNó
<r.   r0   c                  ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestFindDataStartOffsetc                ó~   — |dz  }|j                  d«       t        t        |«      dd¬«      }|t        d«      k(  sJ ‚y )NrO   s   a,b,c
1,2,3
4,5,6
r   ©r:   r9   s   a,b,c
©rc   r   ÚstrÚlen©r@   rK   r(   Úoffsets       r,   Útest_no_skiprows_header_0z1TestFindDataStartOffset.test_no_skiprows_header_0L  s?   € Ø˜*Ñ$ˆØ×ÑÐ1Ô2Ü(¬¨T«¸1ÀqÔIˆØœ˜Z›Ò(Ð(Ñ(r.   c                ól   — |dz  }|j                  d«       t        t        |«      d d¬«      }|dk(  sJ ‚y )NrO   s   1,2,3
4,5,6
r   rÞ   )rc   r   rà   râ   s       r,   Útest_header_nonez(TestFindDataStartOffset.test_header_noneR  s9   € Ø˜*Ñ$ˆØ×ÑÐ*Ô+Ü(¬¨T«¸4È!ÔLˆØ˜Š{Ð‰{r.   c                ó~   — |dz  }|j                  d«       t        t        |«      dd¬«      }|t        d«      k(  sJ ‚y )NrO   s   skip1
skip2
a,b
1,2
r   rÄ   rÞ   s   skip1
skip2
a,b
rß   râ   s       r,   Útest_skiprows_2_header_0z0TestFindDataStartOffset.test_skiprows_2_header_0X  sA   € Ø˜*Ñ$ˆØ×ÑÐ4Ô5Ü(¬¨T«¸1ÀqÔIˆàœÐ3Ó4Ò4Ð4Ñ4r.   c                ó~   — |dz  }|j                  d«       t        t        |«      dd¬«      }|t        d«      k(  sJ ‚y )NrO   s   r0
r1
r2_header
1,2
rÄ   r   rÞ   s   r0
r1
r2_header
rß   râ   s       r,   Útest_header_2z%TestFindDataStartOffset.test_header_2_  sA   € à˜*Ñ$ˆØ×ÑÐ4Ô5Ü(¬¨T«¸1ÀqÔIˆØœÐ3Ó4Ò4Ð4Ñ4r.   c                ó~   — |dz  }|j                  d«       t        t        |«      dd¬«      }|t        d«      k(  sJ ‚y )NrO   s   only_one_line
r   é   rÞ   rß   râ   s       r,   Útest_eof_within_preamblez0TestFindDataStartOffset.test_eof_within_preamblef  sA   € à˜*Ñ$ˆØ×ÑÐ+Ô,Ü(¬¨T«¸1ÀqÔIˆØœÐ/Ó0Ò0Ð0Ñ0r.   N)rÓ   rÔ   rÕ   rä   ræ   rè   rê   rí   r¾   r.   r,   rÜ   rÜ   K  s   „ ò)òò5ò5ó1r.   rÜ   c                  ó4   — e Zd Zdd	d„Zd„ Zd„ Zd„ Zd„ Zd„ Zy)
ÚTestFindChunkByteOffsetsc                ór   — ddj                  d„ t        |«      D «       «      z   }|j                  |d¬«       y )Núa,b
Ú c              3  ó,   K  — | ]  }|› d |› d�–— Œ y­w©ú,r~   Nr¾   ©Ú.0Úis     r,   ú	<genexpr>z6TestFindChunkByteOffsets._write_csv.<locals>.<genexpr>u  s   è ø€ Ò!F°1 Q C q¨¨¨2¤,Ñ!Fùó   ‚rQ   rR   )ÚjoinÚrangerV   )r@   r(   r)   Úliness       r,   Ú
_write_csvz#TestFindChunkByteOffsets._write_csvt  s/   € Ø˜"Ÿ'™'Ñ!F¼¸f»Ô!FÓFÑFˆØ�‰˜¨ˆÕ0r.   c                ó  — |dz  }| j                  |«       t        d«      }t        t        |«      d|«      }|d   |k(  sJ ‚|d   t        j
                  j                  t        |«      «      k(  sJ ‚t        |«      dk(  sJ ‚y )NrO   ó   a,b
rG   r   éÿÿÿÿrÄ   )rþ   rá   r   rà   Úosr(   Úgetsize)r@   rK   r(   Ú
data_startÚoffsetss        r,   Útest_single_chunkz*TestFindChunkByteOffsets.test_single_chunkx  sz   € Ø˜*Ñ$ˆØ�‰˜ÔÜ˜“]ˆ
Ü*¬3¨t«9°a¸ÓDˆØ�q‰z˜ZÒ'Ð'Ð'Ø�r‰{œbŸg™gŸo™o¬c°$«iÓ8Ò8Ð8Ð8Ü�7‹|˜qÒ Ð Ñ r.   c                óx  ‡‡‡— |dz  }| j                  |d¬«       t        d«      Št        j                  j	                  t        |«      «      Št        t        |«      d‰«      Š‰d   ‰k(  sJ ‚‰d   ‰k(  sJ ‚t        ˆˆfd„‰D «       «      sJ ‚t        ˆfd	„t        t        ‰«      d
z
  «      D «       «      sJ ‚y )NrO   rt   ©r)   r   é   r   r  c              3  ó>   •K  — | ]  }‰|cxk  xr ‰k  nc –— Œ y ­w©Nr¾   )r÷   Úoffr  Ú	file_sizes     €€r,   rù   zPTestFindChunkByteOffsets.test_multiple_chunks_cover_full_file.<locals>.<genexpr>‹  s   øè ø€ ÒE°c�: Ö1¨	×1Ð1ÑEùs   ƒc              3  ó:   •K  — | ]  }‰|   ‰|d z      k  –— Œ y­w©rG   Nr¾   ©r÷   rø   r  s     €r,   rù   zPTestFindChunkByteOffsets.test_multiple_chunks_cover_full_file.<locals>.<genexpr>�  ó"   øè ø€ ÒP°1�7˜1‘: ¨¨A©¡Õ.ÑPùó   ƒrG   )	rþ   rá   r  r(   r  rà   r   Úallrü   )r@   rK   r(   r  r  r  s      @@@r,   Ú$test_multiple_chunks_cover_full_filez=TestFindChunkByteOffsets.test_multiple_chunks_cover_full_file�  s¨   ú€ Ø˜*Ñ$ˆØ�‰˜ SˆÔ)Ü˜“]ˆ
Ü—G‘G—O‘O¤C¨£IÓ.ˆ	Ü*¬3¨t«9°a¸ÓDˆà�q‰z˜ZÒ'Ð'Ð'Ø�r‰{˜iÒ'Ð'Ð'äÔE¸WÔEÔEÐEÐEäÓP¼¼cÀ'»lÈQÑ>NÓ8OÔPÔPÐPÑPr.   c                óÄ   — |dz  }| j                  |d¬«       t        d«      }|j                  «       }t        t	        |«      d|«      }|dd D ]  }||dz
  | dk(  rŒJ ‚ y )	NrO   rq   r  r   r	  rG   r  ó   
)rþ   rá   Ú
read_bytesr   rà   )r@   rK   r(   r  Ú	raw_bytesr  r  s          r,   Útest_chunks_align_to_newlinesz6TestFindChunkByteOffsets.test_chunks_align_to_newlines�  sq   € Ø˜*Ñ$ˆØ�‰˜ TˆÔ*Ü˜“]ˆ
Ø—O‘OÓ%ˆ	Ü*¬3¨t«9°a¸ÓDˆà˜1˜R�=ò 	5ˆCà˜S 1™W sÐ+¨uÓ4Ð4Ð4ñ	5r.   c                ó~   — |dz  }|j                  d«       t        t        |«      dd¬«      }t        |«      dk\  sJ ‚y )NrO   s   a,b
1,2
é   r	  ©r  rÄ   )rc   r   rà   rá   )r@   rK   r(   r  s       r,   Ú/test_fewer_chunks_than_requested_when_file_tinyzHTestFindChunkByteOffsets.test_fewer_chunks_than_requested_when_file_tinyš  s>   € Ø˜*Ñ$ˆØ×Ñ˜Ô'Ü*¬3¨t«9°aÀAÔFˆä�7‹|˜qÒ Ð Ñ r.   c                óD  ‡— |dz  }dgdgdz  z   }|j                  ddddz  z   d	z   «       |j                  d
j                  |«      «       t        t	        |«      dd¬«      Št        ‰«      dz
  dk\  sJ ‚t        ˆfd„t        t        ‰«      dz
  «      D «       «      sJ ‚y )NrO   r   s   1,2
é N  é
   s   1,"ó   xé@œ  s   "
r.   é    r	  r  rG   é   c              3  ó:   •K  — | ]  }‰|   ‰|d z      k  –— Œ y­wr  r¾   r  s     €r,   rù   zZTestFindChunkByteOffsets.test_one_long_line_does_not_collapse_the_split.<locals>.<genexpr>®  r  r  )Úinsertrc   rû   r   rà   rá   r  rü   )r@   rK   r(   rý   r  s       @r,   Ú.test_one_long_line_does_not_collapse_the_splitzGTestFindChunkByteOffsets.test_one_long_line_does_not_collapse_the_split¡  s¡   ø€ ð ˜*Ñ$ˆØ�
˜h˜Z¨&Ñ0Ñ0ˆØ�‰�R˜ $¨¡-Ñ/°&Ñ8Ô9Ø×Ñ˜Ÿ™ %›Ô)ä*¬3¨t«9°bÀQÔGˆô �7‹|˜aÑ 2Ò%Ð%Ð%ÜÓP¼¼cÀ'»lÈQÑ>NÓ8OÔPÔPÐPÑPr.   N)r   ©r(   r
   r)   ÚintÚreturnÚNone)	rÓ   rÔ   rÕ   rþ   r  r  r  r  r'  r¾   r.   r,   rï   rï   s  s"   „ ô1ò!òQò	5ò!óQr.   rï   c                  ór   — e Zd ZdZd„ Zd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y)ÚTestReadCsvParallelzAEnd-to-end correctness: parallel result must match serial result.c                ó2   — t        j                  |fddi|¤ŽS )Nr4   r2   )r#   Úread_csv)r@   r(   Úkwargss      r,   Ú_serial_readz TestReadCsvParallel._serial_readº  s   € Ü�{‰{˜4Ñ6¨Ð6¨vÑ6Ð6r.   c                ó`   — t        t        |«      ||«      }|€t        j                  d«       |S )zBCall the internal helper directly so file-size guards don't apply.z!parallel read fell back to serial)r   rà   r×   Úfail)r@   r(   rk   Ú	n_workersÚresults        r,   Ú_parallel_readz"TestReadCsvParallel._parallel_read½  s+   € ä#¤C¨£I¨t°YÓ?ˆØˆ>Ü�K‰KÐ;Ô<Øˆr.   c                ó  — ddl m} ddlm} i dd“d|j                  “dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“i dd“dd“dd“dd“dd“dd“dd“d d!“d"d“d#d$“d%d“d&d“d'd“d(d“d)d“d*d+“d,d“¥d-dddd|j                  d.œ¥}|j                  |«        |d|j                  d|j                  |j                  d/«      |j                  d«      d0d1i|j                  d2«      |d"   ¬3«	      }|j                  |«       |S )4zBReturn kwds as _read() would see them for a default read_csv call.r   )Úlib)Ú_refine_defaults_readr:   r3   Únamesr<   Nr=   ÚdtypeÚ
convertersÚtrue_valuesÚfalse_valuesÚskipinitialspaceFr9   r;   r8   Ú	na_valuesÚkeep_default_naTÚ	na_filterÚskip_blank_linesr§   Údate_formatÚdayfirstÚcache_datesr6   r7   r>   Ú	thousandsÚdecimalú.r|   r”   ú"ÚquotingÚdoublequoterž   rš   rS   Úencoding_errorsÚstrictr£   Úerror)r´   r©   Ú
memory_mapÚfloat_precisionr°   Údtype_backendr´   r�   rõ   rR  )	r£   r�   r4   Úsepr´   r:  ÚdefaultsrR  r|   )Úpandas._libsr8  Úpandas.io.parsers.readersr9  Ú
no_defaultr?   Úpop)r@   r(   rA   r8  r9  rk   Úkwds_defaultss          r,   Ú
_base_kwdszTestReadCsvParallel._base_kwdsÄ  sA  € å$åCð)
Ø�gð)
à�S—^‘^ð)
ð ˜ð)
ð �tð	)
ð
 �Tð)
ð ˜$ð)
ð ˜4ð)
ð ˜Dð)
ð  ð)
ð ˜ð)
ð ˜!ð)
ð �Tð)
ð ˜ð)
ð ˜tð)
ð ˜ð)
ð   ð!)
ð" ˜4ñ#)
ð$ ˜4ð%)
ð& ˜ð')
ð( ˜4ð))
ð* ˜ð+)
ð, ˜ð-)
ð. ˜7ð/)
ð0 ˜ð1)
ð2 �sð3)
ð4 ˜dð5)
ð6 ˜ð7)
ð8 �qð9)
ð: ˜4ð;)
ð< ˜$ð=)
ð> �tð?)
ð@ ˜ðA)
ðB ˜xðC)
ðD �tñE)
ðF $ØØØ#Ø#Ø Ÿ^™^òQ)
ˆðT 	�‰�IÔá-ØØ—n‘nØØ—‘ØŸ™ .Ó1Ø—(‘(˜7Ó#Ø! 3Ð'ØŸ(™( ?Ó3ØÐ 0Ñ1ô

ˆð 	�‰�MÔ"Øˆr.   c                óš  — |dz  }d}t         j                  j                  d«      }t        j                  |j                  dd|«      |j                  |«      dœ«      }|j                  |d¬«       | j                  |«      }| j                  ||«      }| j                  |«      }t        j                  |j                  d¬	«      |«       y )
NrO   éˆ  r   rt   ©r¦   rÏ   Fr   T©Údrop©r    r!   r"   r#   r$   r%   r'   rZ  r6  r1  ÚtmÚassert_frame_equalÚreset_index©	r@   rK   r(   Únr*   r+   rk   r5  Úexpecteds	            r,   Útest_ints_and_floatsz(TestReadCsvParallel.test_ints_and_floats  s«   € Ø˜*Ñ$ˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ�\‰\ §¡¨Q°°QÓ 7¸c¿j¹jÈ»mÑLÓMˆØ
�	‰	�$˜eˆ	Ô$Ø�‰˜tÓ$ˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ TÓ*ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFr.   c                ó   — |dz  }d}t         j                  j                  d«      }t        j                  |j                  g d¢|«      |j                  dd|«      dœ«      }|j                  |d¬	«       | j                  |«      }| j                  ||«      }| j                  |«      }t        j                  |j                  d
¬«      |«       y )NrO   r\  rG   )ÚaliceÚbobÚcarolr   r   )ÚnameÚvalFr   Tr^  )r    r!   r"   r#   r$   r&   r%   r'   rZ  r6  r1  ra  rb  rc  rd  s	            r,   Útest_stringsz TestReadCsvParallel.test_strings  s·   € Ø˜*Ñ$ˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ�\‰\àŸ
™
Ò#<¸aÓ@Ø—|‘| A r¨1Ó-ñó
ˆð 	�	‰	�$˜eˆ	Ô$Ø�‰˜tÓ$ˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ TÓ*ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFr.   c                óÜ  — |dz  }d}t         j                  j                  d«      }|j                  |«      }t        d«      ||j	                  d|d«      <   t        j                  ||j	                  dd|«      dœ«      }|j                  |d	¬
«       | j                  |«      }| j                  ||«      }| j                  |«      }	t        j                  |j                  d¬«      |	«       y )NrO   r\  rÄ   Únanr   éÈ   rì   r]  Fr   Tr^  )r    r!   r"   Úfloatr%   r#   r$   r'   rZ  r6  r1  ra  rb  rc  )
r@   rK   r(   re  r*   Úvalsr+   rk   r5  rf  s
             r,   Útest_with_na_valuesz'TestReadCsvParallel.test_with_na_values#  sË   € Ø˜*Ñ$ˆØˆÜ�i‰i×#Ñ# AÓ&ˆØ�z‰z˜!‹}ˆÜ(-¨e«ˆˆS�\‰\˜!˜Q Ó$Ñ%Ü�\‰\ ¨3¯<©<¸¸1¸aÓ+@ÑAÓBˆØ
�	‰	�$˜eˆ	Ô$Ø�‰˜tÓ$ˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ TÓ*ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFr.   c                ó„  — |dz  }d}t         j                  j                  d«      }t        j                  |j                  dd|df«      «      }|j                  |dd¬«       | j                  |d ¬	«      }| j                  ||«      }| j                  |d ¬	«      }t        j                  |j                  d
¬«      |«       y )NrO   r\  é   r   rt   r	  F)r   r:   rÇ   Tr^  r`  rd  s	            r,   ræ   z$TestReadCsvParallel.test_header_none0  s­   € Ø˜*Ñ$ˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ�\‰\˜#Ÿ,™, q¨#°°1¨vÓ6Ó7ˆØ
�	‰	�$˜e¨Eˆ	Ô2Ø�‰˜t¨DˆÓ1ˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ T°$Ð$Ó7ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFr.   c                óp  — |dz  }d}dgdz  dgz   t        |«      D �cg c]
  }|› d|› d�‘Œ c}z   }|j                  dj                  |«      d	¬
«       | j                  |d¬«      }| j	                  ||«      }| j                  |d¬«      }t        j                  |j                  d¬«      |«       y c c}w )NrO   r\  zskip_me
rv  rñ   rõ   r~   rò   rQ   rR   rÁ   Tr^  )	rü   rV   rû   rZ  r6  r1  ra  rb  rc  )	r@   rK   r(   re  rø   rý   rk   r5  rf  s	            r,   Útest_skiprows_intz%TestReadCsvParallel.test_skiprows_int;  s¹   € Ø˜*Ñ$ˆØˆØ� Ñ! W IÑ-ÄuÈQÃxÖ0PÀ!°A°3°a¸°s¸"²Ò0PÑPˆØ�‰˜Ÿ™ ›°ˆÔ9Ø�‰˜t¨aˆÓ0ˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ T°AÐ$Ó6ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFùò 1Qs   žB3c                óÎ   — |dz  }ddj                  d„ t        d«      D «       «      z   }|j                  |d¬«       | j                  |«      }t	        t        |«      |d«      �J ‚y )	Núimplicit.csvrñ   rò   c              3  ó:   K  — | ]  }d |› d|› d|dz  › d�–— Œ y­w©Úidxrõ   rÄ   r~   Nr¾   rö   s     r,   rù   zGTestReadCsvParallel.test_implicit_index_returns_none.<locals>.<genexpr>J  s)   è ø€ Ò!P¸a C¨ s¨!¨A¨3¨a°°A±¨w°bÔ"9Ñ!Pùs   ‚r\  rQ   rR   r	  ©rû   rü   rV   rZ  r   rà   ©r@   rK   r(   rý   rk   s        r,   Ú test_implicit_index_returns_nonez4TestReadCsvParallel.test_implicit_index_returns_noneE  sb   € ð ˜.Ñ(ˆØ˜"Ÿ'™'Ñ!PÄ5ÈÃ<Ô!PÓPÑPˆØ�‰˜¨ˆÔ0Ø�‰˜tÓ$ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ñ=r.   c                óÂ  ‡
— |dz  }ddddz  › d�g}|t        d«      D �cg c]
  }|› d|› d�‘Œ c}z  }|j                  d	j                  |«      d
¬«       g Š
ˆ
fd„}|j                  d|«       | j	                  |«      }t        t        |«      |d«      }|€J ‚| j                  |«      }	t        j                  |j                  d¬«      |	«       ‰
d   dk\  sJ ‚y c c}w )NrO   rñ   z0,sr¿   iPÃ  r~   é0u  ú,srò   rQ   rR   c                óB   •— ‰j                  |«       t        | ||g|¢­Ž S r  )Úappendr   )ÚfilepathÚn_chunksr  ÚargsÚ	n_targetss       €r,   ÚspyzFTestReadCsvParallel.test_long_first_line_keeps_fine_split.<locals>.spy[  s%   ø€ Ø×Ñ˜XÔ&Ü+¨H°hÀ
ÐRÈTÒRÐRr.   ú2pandas.io.parsers.readers._find_chunk_byte_offsetsr	  Tr^  r   r   )rü   rV   rû   rH   rZ  r   rà   r1  ra  rb  rc  )r@   rK   rL   r(   rý   rø   rŠ  rk   r5  rf  r‰  s             @r,   Ú%test_long_first_line_keeps_fine_splitz9TestReadCsvParallel.test_long_first_line_keeps_fine_splitO  sõ   ø€ ð
 ˜*Ñ$ˆØ˜C  f¡˜~¨RÐ0Ð1ˆØ¬¨v«Ö7 A�Q�C�r˜!˜˜B’-Ò7Ñ7ˆØ�‰˜Ÿ™ ›°ˆÔ9àˆ	ô	Sð 	×ÑÐPÐRUÔVØ�‰˜tÓ$ˆÜ#¤C¨£I¨t°QÓ7ˆØÐ!Ð!Ð!Ø×$Ñ$ TÓ*ˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÔFð ˜‰|˜rÒ!Ð!Ñ!ùò# 8s    Cc                ó
  — |dz  }dj                  d„ t        d«      D «       «      dz   }dj                  dgdz  «      dz   }|j                  ||dz  z   d¬	«       | j                  |«      }t	        t        |«      |d
«      �J ‚y )Núwide.csvrõ   c              3  ó&   K  — | ]	  }d |› �–— Œ y­w©r2   Nr¾   rö   s     r,   rù   zKTestReadCsvParallel.test_few_estimated_rows_returns_none.<locals>.<genexpr>o  s   è ø€ Ò6 a˜A˜a˜Sœ'Ñ6ùó   ‚éô  r~   Ú	123456789é,  rQ   rR   r	  r~  )r@   rK   r(   r:   Úrowrk   s         r,   Ú$test_few_estimated_rows_returns_nonez8TestReadCsvParallel.test_few_estimated_rows_returns_nonei  s…   € ð
 ˜*Ñ$ˆØ—‘Ñ6¬5°«:Ô6Ó6¸Ñ=ˆØ�h‰h˜�} sÑ*Ó+¨dÑ2ˆØ�‰˜  s¡Ñ*°WˆÔ=Ø�‰˜tÓ$ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ñ=r.   c           	     óÎ   — |dz  }|j                  ddj                  d„ t        d«      D «       «      z   d¬«       | j                  |d ¬«      }t	        t        |«      |d	«      �J ‚y )
Núblank_first.csvr~   rò   c              3  ó2   K  — | ]  }|› d |dz  › d�–— Œ y­w©rõ   rÄ   r~   Nr¾   rö   s     r,   rù   zNTestReadCsvParallel.test_blank_first_data_line_returns_none.<locals>.<genexpr>{  s!   è ø€ ÒB°˜a˜S  ! a¡% ¨Ô+ÑBùó   ‚r\  rQ   rR   rÇ   r	  )rV   rû   rü   rZ  r   rà   rj   s       r,   Ú'test_blank_first_data_line_returns_nonez;TestReadCsvParallel.test_blank_first_data_line_returns_noneu  sj   € ð Ð+Ñ+ˆØ�‰Ø�2—7‘7ÑB´U¸5³\ÔBÓBÑBÈWð 	ô 	
ð �‰˜t¨DˆÓ1ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ñ=r.   c                óÎ   — |dz  }ddj                  d„ t        d«      D «       «      z   }|j                  |d¬«       | j                  |«      }t	        t        |«      |d«      �J ‚y )	Núhdr.csvz"col
1",col2
rò   c              3  ó.   K  — | ]  }d |› d|› d�–— Œ y­w©r¿   z,yr~   Nr¾   rö   s     r,   rù   zQTestReadCsvParallel.test_quoted_newline_in_header_returns_none.<locals>.<genexpr>…  s   è ø€ Ò+Q¸q¨a°¨s°"°Q°C°r¬NÑ+Qùs   ‚r\  rQ   rR   r	  r~  r  s        r,   Ú*test_quoted_newline_in_header_returns_nonez>TestReadCsvParallel.test_quoted_newline_in_header_returns_none€  sb   € ð ˜)Ñ#ˆØ! B§G¡GÑ+QÄEÈ%ÃLÔ+QÓ$QÑQˆØ�‰˜¨ˆÔ0Ø�‰˜tÓ$ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ñ=r.   c                ó"  — |dz  }dj                  d„ t        d«      D «       «      }|j                  d|z   «       | j                  |«      }t	        t        |«      |d«      �J ‚|j                  d|z   «       t	        t        |«      |d«      €J ‚y )Nzcr.csvr.   c              3  óJ   K  — | ]  }d |› d|› d�j                  «       –— Œ y­wr   ©Úencoderö   s     r,   rù   zLTestReadCsvParallel.test_bare_cr_before_data_returns_none.<locals>.<genexpr>Ž  s'   è ø€ ÒF°A˜!˜A˜3˜b   2˜×-Ñ-×/ÑFùó   ‚!#r\  s	   a,bc,d

r	  s   a,b
c,d

)rû   rü   rc   rZ  r   rà   ©r@   rK   r(   Úbodyrk   s        r,   Ú%test_bare_cr_before_data_returns_nonez9TestReadCsvParallel.test_bare_cr_before_data_returns_noneŠ  s�   € ð ˜(Ñ"ˆØ�x‰xÑF¼¸u»ÔFÓFˆØ×Ñ˜¨4Ñ/Ô0Ø�‰˜tÓ$ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ð=Ø×ÑÐ.°Ñ5Ô6Ü!¤# d£)¨T°1Ó5ÐAÐAÑAr.   c                ó²  — |dz  }d}t         j                  j                  d«      }t        j                  |j                  dd|«      |j                  dd|«      dœ«      }|j                  |d¬«       | j                  |d	d	dœ¬
«      }| j                  ||«      }| j                  |d	d	dœ¬
«      }t        j                  |j                  d¬«      |«       y )NrO   r\  rì   r   rt   r]  Fr   Úfloat64©r;  Tr^  r`  rd  s	            r,   Útest_dtype_specifiedz(TestReadCsvParallel.test_dtype_specified•  sÄ   € Ø˜*Ñ$ˆØˆÜ�i‰i×#Ñ# AÓ&ˆÜ�\‰\ §¡¨Q°°QÓ 7¸c¿l¹lÈ1ÈcÐSTÓ>UÑVÓWˆØ
�	‰	�$˜eˆ	Ô$Ø�‰˜t°ÀÑ+KˆÓLˆØ×$Ñ$ T¨4Ó0ˆØ×$Ñ$ T°yÀyÑ1QÐ$ÓRˆÜ
×Ñ˜f×0Ñ0°dÐ0Ó;¸XÕFr.   c                ól  — |dz  }dj                  d„ t        d«      D «       «      }|j                  d|z   d¬«       | j                  |dt        i¬	«      }t        t	        |«      |d
«      �J ‚|j                  d|z   d¬«       | j                  |dt        i¬	«      }t        t	        |«      |d
«      €J ‚y )NrO   rò   c              3  ó2   K  — | ]  }|› d |dz   › d�–— Œ y­w©rõ   rG   r~   Nr¾   rö   s     r,   rù   zQTestReadCsvParallel.test_dict_dtype_duplicate_names_falls_back.<locals>.<genexpr>¥  s!   è ø€ Ò>¨A˜!˜˜A˜a !™e˜W BÔ'Ñ>ùr›  r\  za,a
rQ   rR   r¦   r¬  r	  rñ   )rû   rü   rV   rZ  rà   r   r§  s        r,   Ú*test_dict_dtype_duplicate_names_falls_backz>TestReadCsvParallel.test_dict_dtype_duplicate_names_falls_back   s¬   € ð ˜*Ñ$ˆØ�w‰wÑ>´°u³Ô>Ó>ˆà�‰˜ $™°ˆÔ9Ø�‰˜t¨C´¨:ˆÓ6ˆÜ!¤# d£)¨T°1Ó5Ð=Ð=Ð=à�‰˜ $™°ˆÔ9Ø�‰˜t¨C´¨:ˆÓ6ˆÜ!¤# d£)¨T°1Ó5ÐAÐAÑAr.   N)r	  )rÓ   rÔ   rÕ   rÖ   r1  r6  rZ  rg  rn  rt  ræ   rx  r€  rŒ  r–  rœ  r¡  r©  r­  r±  r¾   r.   r,   r-  r-  ¶  s^   „ áKò7óò>òH	GòGò Gò	GòGò>ò"ò4
>ò	>ò>ò	Bò	GóBr.   r-  zcsv_bytes,expected_rowss#   a,b,c
1,"hello
world",3
4,normal,6
rÄ   Úsimple_embedded_newline)Úids(   a,b,c
1,"hello
2,foo,bar",3
100,baz,200
Ú+adversarial_after_split_looks_like_full_rows5   a,b
1,"line1
line2
line3"
2,normal
3,"also
embedded"
rv  Úmultiple_embedded_newlinesc                óZ  — |j                  dd«       | dz  }|j                  |«       t        j                  t	        j
                  |«      «      }t        j                  |«      }t        |«      |k(  sJ ‚t        j                  |j                  d¬«      |j                  d¬«      «       y)a%  
    CSV files with newlines inside quoted fields must produce the same result
    as a direct serial read.  The parallel path either parses correctly (when
    the split misses the embedded newline) or falls back to serial (when it
    hits it).  Silent data corruption must never occur.
    ú2pandas.io.parsers.readers._PARALLEL_READ_MIN_BYTESrG   zembedded.csvTr^  N)
rH   rc   r#   r/  ÚioÚBytesIOrá   ra  rb  rc  )rK   rL   Ú	csv_bytesÚexpected_rowsr(   ÚserialÚparallels          r,   Ú*test_embedded_newline_falls_back_to_serialr¾  µ  s”   € ðB ×ÑÐLÈaÔPØ�nÑ$€DØ×Ñ�YÔä�[‰[œŸ™ IÓ.Ó/€FÜ�{‰{˜4Ó €Häˆx‹=˜MÒ)Ð)Ð)Ü×ÑØ×Ñ $ÐÓ'¨×);Ñ);ÀÐ);Ó)Fõr.   c                ó,  — | dz  }t        |«       |j                  t        dd«       t        j                  dd«      5  t        j
                  |«      }ddd«       t        j
                  |d¬«      }t        j                  |«       y# 1 sw Y   Œ7xY w)	z”
    read_csv() transparently uses the parallel path for large local files.
    Result must match the serial read obtained via engine='python'.
    rE   rF   rG   úmode.max_threadsr	  Nrw   rT   )r-   rH   rI   r#   Úoption_contextr/  ra  rb  ©rK   rL   r(   r5  rf  s        r,   Útest_read_csv_auto_parallelrÃ  è  s   € ð
 �iÑ€DÜ�DÔà×ÑœÐ"<¸aÔ@ô
 
×	Ñ	Ð-¨qÓ	1ñ #Ü—‘˜TÓ"ˆ÷#ä�{‰{˜4¨Ô1€HÜ×Ñ˜& (Õ+÷#ð #ús   ¾B
Â
Bc                ó:  — | dz  }t        |«       |j                  t        dd«       d}t        j                  dd«      5  t        j                  t        |¬«      5  t        j                  |d¬	«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)
NrE   rF   rG   z,For argument "memory_map" expected type boolrÀ  r	  ©ÚmatchÚFalse)rP  )	r-   rH   rI   r#   rÁ  r×   ÚraisesÚ
ValueErrorr/  )rK   rL   r(   Úmsgs       r,   Ú*test_read_csv_parallel_non_bool_memory_maprË  û  sŠ   € ð �iÑ€DÜ�DÔØ×ÑœÐ"<¸aÔ@à
8€CÜ	×	Ñ	Ð-¨qÓ	1ñ 2Ü�]‰]œ:¨SÔ1ñ 	2Ü�K‰K˜¨Õ1÷	2÷2ð 2÷	2ð 	2ú÷2ð 2ús$   Á BÁBÁ4BÂB	Â
BÂBz*WASM stays serial, so the spy sees no call)Úreasonc                óV  — | dz  }t        |«       |j                  t        dd«       t        j                  |d¬«      }t        |«      }t        j                  dd«      5  t        j                  |d¬«      }d	d	d	«       t        j                  |«       |d
gk(  sJ ‚y	# 1 sw Y   Œ(xY w)zœ
    For a file that exceeds the threshold, the parallel result equals the
    result from a direct serial C-engine read (with parallelism forced off).
    rE   rF   rG   rw   rT   rÀ  r	  r2   NÚused)	r-   rH   rI   r#   r/  Ú_track_parallelrÁ  ra  rb  )rK   rL   r(   r¼  Úoutcomesr½  s         r,   Ú+test_read_csv_parallel_vs_serial_large_filerÑ    s™   € ð �iÑ€DÜ�DÔà×ÑœÐ"<¸aÔ@ä�[‰[˜ hÔ/€FÜ˜{Ó+€Hä	×	Ñ	Ð-¨qÓ	1ñ 1Ü—;‘;˜t¨CÔ0ˆ÷1ä×Ñ˜( FÔ+Ø˜�xÒÐÑ÷1ð 1ús   Á BÂB(Úplatform_name©ÚlinuxÚdarwinÚwin32c                ó�  ‡— | dz  }t        |«       |j                  t        dd«       |j                  t        j                  dd„ «       |j                  t        dd„ «       g Šˆfd„}|j                  t        d	|«       |j                  t        j                  d
|«       t        j                  |«       t        ‰«      dk(  sJ ‚y)z>The parallel path is on by default on every threaded platform.rE   rF   rG   Ú	cpu_countc                  ó   — y©Nr	  r¾   r¾   r.   r,   rÀ   z-test_parallel_on_by_default.<locals>.<lambda>%  ó   � r.   Úavailable_cpu_countc                  ó   — y r  r¾   r¾   r.   r,   rÀ   z-test_parallel_on_by_default.<locals>.<lambda>&  rÛ  r.   c                 óN   •— ‰j                  | «       t        j                  «       S r  ©r…  r#   r$   ©rˆ  r0  Úcallss     €r,   Ústubz)test_parallel_on_by_default.<locals>.stub-  ó   ø€ Ø�‰�TÔÜ�|‰|‹~Ðr.   r   ÚplatformN)r-   rH   rI   r  Úsysr#   r/  rá   )rK   rL   rÒ  r(   râ  rá  s        @r,   Útest_parallel_on_by_defaultræ    s¨   ø€ ð �iÑ€DÜ�DÔØ×ÑœÐ"<¸aÔ@ð ×ÑœŸ™ [±)Ô<Ø×ÑœÐ"7¹ÔFð
 €Eôð ×ÑœÐ"6¸Ô=Ø×ÑœŸ™ j°-Ô@ä‡K�K�ÔÜˆu‹:˜Š?Ð‰?r.   c                ó~  ‡— | dz  }t        |«       |j                  t        dd«       |j                  t        j                  dd„ «       |j                  t        dd„ «       g Šˆfd„}|j                  t        d	|«       |j                  t        j                  d
d«       t        j                  |«       ‰g k(  sJ ‚y)z4Emscripten cannot spawn threads, so it stays serial.rE   rF   rG   rØ  c                  ó   — yrÚ  r¾   r¾   r.   r,   rÀ   z3test_parallel_default_off_on_wasm.<locals>.<lambda>=  rÛ  r.   rÜ  c                  ó   — y r  r¾   r¾   r.   r,   rÀ   z3test_parallel_default_off_on_wasm.<locals>.<lambda>>  rÛ  r.   c                 óN   •— ‰j                  | «       t        j                  «       S r  rß  rà  s     €r,   râ  z/test_parallel_default_off_on_wasm.<locals>.stubB  rã  r.   r   rä  Ú
emscriptenN)r-   rH   rI   r  rå  r#   r/  )rK   rL   r(   râ  rá  s       @r,   Ú!test_parallel_default_off_on_wasmrì  8  sž   ø€ à�iÑ€DÜ�DÔØ×ÑœÐ"<¸aÔ@Ø×ÑœŸ™ [±)Ô<Ø×ÑœÐ"7¹ÔFà€Eôð ×ÑœÐ"6¸Ô=Ø×ÑœŸ™ j°,Ô?ä‡K�K�ÔØ�BŠ;Ð‰;r.   c                ó0  ‡— | dz  }t        |«       |j                  t        dd«       |j                  t        j                  dd«       |j                  t        j                  dd„ «       |j                  t        dd	„ «       g Šˆfd
„}|j                  t        d|«       t        j                  |«       ‰dgk(  sJ ‚‰j                  «        t        j                  dd«      5  t        j                  |«       ddd«       ‰dgk(  sJ ‚y# 1 sw Y   ŒxY w)zBThe default worker count is capped at 6, regardless of core count.rE   rF   rG   rä  rÔ  rØ  c                  ó   — y)Né   r¾   r¾   r.   r,   rÀ   z2test_parallel_default_thread_cap.<locals>.<lambda>T  rÛ  r.   rÜ  c                  ó   — y r  r¾   r¾   r.   r,   rÀ   z2test_parallel_default_thread_cap.<locals>.<lambda>W  rÛ  r.   c                óN   •— ‰j                  |«       t        j                  «       S r  rß  )Ú_pathrC   r4  Úworkerss      €r,   râ  z.test_parallel_default_thread_cap.<locals>.stub[  s   ø€ Ø�‰�yÔ!Ü�|‰|‹~Ðr.   r   é   rÀ  r  N)	r-   rH   rI   rå  r  r#   r/  ÚclearrÁ  )rK   rL   r(   râ  ró  s       @r,   Ú test_parallel_default_thread_caprö  M  sí   ø€ à�iÑ€DÜ�DÔØ×ÑœÐ"<¸aÔ@Ø×ÑœŸ™ j°'Ô:à×ÑœŸ™ [±*Ô=ð ×ÑœÐ"7¹ÔFà€Gôð ×ÑœÐ"6¸Ô=ä‡K�K�ÔØ�q�cŠ>Ðˆ>ð ‡M�M„OÜ	×	Ñ	Ð-¨qÓ	1ñ Ü
�‰�DÔ÷à�q�cŠ>Ð‰>÷ð ús   Ã%DÄDc                  óî   — e Zd ZdZej
                  j                  dg d¢«      ej
                  j                  dg d¢«      d„ «       «       Zd„ Zd„ Z	ej
                  j                  dd	d
g«      d„ «       Z
y)ÚTestDefaultNWorkersz(Unit tests for the default worker count.rÒ  rÓ  zcpu_count, available, expected))rÄ   NrÄ   )rï  Nrô  )rï  rG   rG   )rï  rÄ   rÄ   )rï  r  rô  )rÄ   r  rÄ   c                óf  ‡‡— t         j                  dk(  sJ ‚|j                  t         j                  d|«       |j                  t         j                  dˆfd„«       |j                  t         dˆfd„«       t        j                  dd «      5  t        «       |k(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nrô  rä  rØ  c                 ó   •— ‰ S r  r¾   )rØ  s   €r,   rÀ   zFTestDefaultNWorkers.test_combines_cap_and_allocation.<locals>.<lambda>†  s   ø€ ¸i€ r.   rÜ  c                 ó   •— ‰ S r  r¾   )Ú	availables   €r,   rÀ   zFTestDefaultNWorkers.test_combines_cap_and_allocation.<locals>.<lambda>‡  s   ø€ ÀY€ r.   rÀ  )rI   Ú_MAX_DEFAULT_WORKERSrH   rå  r  r#   rÁ  r   )r@   rL   rØ  rü  rf  rÒ  s     ``  r,   Ú test_combines_cap_and_allocationz4TestDefaultNWorkers.test_combines_cap_and_allocations  s‘   ù€ ô" ×,Ñ,°Ò1Ð1Ð1Ø×ÑœHŸL™L¨*°mÔDØ×ÑœHŸK™K¨Ó6GÔHØ×ÑœHÐ&;Ó=NÔOÜ×ÑÐ1°4Ó8ñ 	4Ü%Ó'¨8Ò3Ð3Ñ3÷	4÷ 	4ñ 	4ús   ÂB'Â'B0c                ó¼   — |j                  t        j                  dd«       t        j                  dd«      5  t        «       dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nrä  rë  rÀ  r  rG   ©rH   rI   rå  r#   rÁ  r   ©r@   rL   s     r,   Útest_wasm_is_serialz'TestDefaultNWorkers.test_wasm_is_serial‹  sO   € Ø×ÑœHŸL™L¨*°lÔCä×ÑÐ1°1Ó5ñ 	-Ü%Ó'¨1Ò,Ð,Ñ,÷	-÷ 	-ñ 	-úó   ¸AÁAc                ó0  — |j                  t        j                  dd«       |j                  t        j                  dd„ «       |j                  t        dd„ «       t	        j
                  dd«      5  t        «       dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)	Nrä  rÔ  rØ  c                  ó   — y)NrÄ   r¾   r¾   r.   r,   rÀ   zBTestDefaultNWorkers.test_max_threads_exceeds_cap.<locals>.<lambda>–  rÛ  r.   rÜ  c                  ó   — y©NrG   r¾   r¾   r.   r,   rÀ   zBTestDefaultNWorkers.test_max_threads_exceeds_cap.<locals>.<lambda>—  rÛ  r.   rÀ  r#  )rH   rI   rå  r  r#   rÁ  r   r  s     r,   Útest_max_threads_exceeds_capz0TestDefaultNWorkers.test_max_threads_exceeds_cap‘  sz   € ð 	×ÑœHŸL™L¨*°gÔ>Ø×ÑœHŸK™K¨±iÔ@Ø×ÑœHÐ&;¹YÔGÜ×ÑÐ1°2Ó6ñ 	.Ü%Ó'¨2Ò-Ð-Ñ-÷	.÷ 	.ñ 	.ús   Á2BÂBrÔ  rÖ  c                ó¼   — |j                  t        j                  d|«       t        j                  dd«      5  t        «       dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nrä  rÀ  rv  r   )r@   rL   rÒ  s      r,   Útest_max_threads_winsz)TestDefaultNWorkers.test_max_threads_wins›  sO   € à×ÑœHŸL™L¨*°mÔDÜ×ÑÐ1°1Ó5ñ 	-Ü%Ó'¨1Ò,Ð,Ñ,÷	-÷ 	-ñ 	-úr  N)rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rþ  r  r  r
  r¾   r.   r,   rø  rø  p  s~   „ Ù2à‡[�[×Ñ˜_Ò.JÓKØ‡[�[×ÑØ(ò	
ó
ñ
4ó
ó Lð
4ò-ò.ð ‡[�[×Ñ˜_¨w¸Ð.@ÓAñ-ó Bñ-r.   rø  c                óª   — |j                  dd«       t        j                  dd«      5  t        j                  | fi |¤Žcddd«       S # 1 sw Y   yxY w)z@read_csv with the parallel path force-enabled on every platform.r·  rG   rÀ  r	  N)rH   r#   rÁ  r/  )r(   rL   r0  s      r,   Ú_read_forced_parallelr  ¨  sJ   € à×ÑÐLÈaÔPÜ	×	Ñ	Ð-¨qÓ	1ñ +Ü�{‰{˜4Ñ* 6Ñ*÷+÷ +ò +ús   ©A	Á	Ac                ó<  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||d¬«      }t	        j
                  t        j                  |«      d¬«      }t        j                  ||«       |j                  d   d	k(  sJ ‚y )
Nó
   col1,col2
r.   c              3  óL   K  — | ]  }d |› d|› d�j                  d«      –— Œ y­w)u   seÃ±orrõ   r~   r…   Nr¤  rö   s     r,   rù   z6test_parallel_latin1_matches_serial.<locals>.<genexpr>²  s/   è ø€ ò $Ø34ˆ(�1�#�Q�q�c˜Ð×#Ñ# I×.ñ$ùs   ‚"$r’  z	latin.csvr…   rR   ©r   Úcol1u   seÃ±or0©rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  Úloc©rK   rL   Úrawr(   r5  rf  s         r,   Ú#test_parallel_latin1_matches_serialr  ¯  s‘   € ð ˜3Ÿ8™8ñ $Ü8=¸c»
ô$ó ñ €Cð �kÑ!€DØ×Ñ�SÔä" 4¨¸yÔI€FÜ�{‰{œ2Ÿ:™: c›?°YÔ?€HÜ×Ñ˜& (Ô+Ø�:‰:�iÑ  KÒ/Ð/Ñ/r.   c                óø  — ddj                  d„ t        d«      D «       «      z   dz   dj                  d„ t        dd«      D «       «      z   }| d	z  }|j                  |«       d
}t        j                  t
        |¬«      5  t        ||d¬«       d d d «       t        j                  t
        |¬«      5  t        j                  t        j                  |«      d¬«       d d d «       y # 1 sw Y   ŒXxY w# 1 sw Y   y xY w)Nr   r.   c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­w©z,xr~   Nr¤  rö   s     r,   rù   zDtest_parallel_ascii_non_ascii_byte_matches_serial.<locals>.<genexpr>Å  s%   è ø€ Ò>¨a�a�S˜˜1˜#˜R�=×'Ñ'×)Ñ>ùó   ‚ "r’  s   500,Ã©
c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wr  r¤  rö   s     r,   rù   zDtest_parallel_ascii_non_ascii_byte_matches_serial.<locals>.<genexpr>Ç  s%   è ø€ ÒD¨a�a�S˜˜1˜#˜R�=×'Ñ'×)ÑDùr  iõ  rq   z	ascii.csvz'ascii' codec can't decoderÅ  rˆ   rR   )rû   rü   rc   r×   rÈ  ÚUnicodeDecodeErrorr  r#   r/  r¸  r¹  ©rK   rL   r  r(   rÊ  s        r,   Ú1test_parallel_ascii_non_ascii_byte_matches_serialr  ¾  sâ   € ð 	Ø
�(‰(Ñ>´5¸³:Ô>Ó
>ñ	?à
ñ	ð �(‰(ÑD´5¸¸dÓ3CÔDÓ
Dñ	Eð ð �kÑ!€DØ×Ñ�SÔà
&€CÜ	�‰Ô)°Ô	5ñ CÜ˜d K¸'ÕB÷Cä	�‰Ô)°Ô	5ñ 7Ü
�‰”B—J‘J˜s“O¨gÕ6÷7ð 7÷Cð Cú÷7ð 7ús   Á>C$Â0+C0Ã$C-Ã0C9c                ón  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||dt        i¬«      }t        j                  t        j                  |«      dt        i¬«      }t        j                  ||«       |j                  d   |j                  d   k(  sJ ‚y )	Ns   a,a
r.   c              3  óN   K  — | ]  }|› d |dz   › d�j                  «       –— Œ y­wr°  r¤  rö   s     r,   rù   zDtest_parallel_dup_names_dict_dtype_matches_serial.<locals>.<genexpr>Ø  ó*   è ø€ ÒL¸A   1 Q¨¡U G¨2Ð.×5Ñ5×7ÑLùó   ‚#%r’  zdup.csvr¦   r¬  za.1)rû   rü   rc   r  rà   r#   r/  r¸  r¹  ra  rb  Údtypesr  s         r,   Ú1test_parallel_dup_names_dict_dtype_matches_serialr$  Ó  s—   € ð
 �S—X‘XÑLÄÀsÃÔLÓLÑ
L€CØ�iÑ€DØ×Ñ�SÔä" 4¨¸SÄ#¸JÔG€FÜ�{‰{œ2Ÿ:™: c›?°3¼°*Ô=€HÜ×Ñ˜& (Ô+à�=‰=˜Ñ §¡¨uÑ!5Ò5Ð5Ñ5r.   c                óX  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||d¬«      }t	        j
                  t        j                  |«      d¬«      }t        j                  ||«       |d   j                  t        j                  k(  sJ ‚y )	Ns   # a comment
col1,col2
r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   zEtest_parallel_comment_before_header_matches_serial.<locals>.<genexpr>æ  s/   è ø€ ò 1Ø&'ˆ1ˆ#ˆQˆq�1‰uˆg�RÐ×Ñ×!ñ1ùr"  r’  zcomment.csvr˜   r™   r  ©rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  r;  r    Úint64r  s         r,   Ú2test_parallel_comment_before_header_matches_serialr)  ã  s–   € ð &¨¯©ñ 1Ü+0°«:ô1ó )ñ €Cð �mÑ#€DØ×Ñ�SÔä" 4¨¸cÔB€FÜ�{‰{œ2Ÿ:™: c›?°CÔ8€HÜ×Ñ˜& (Ô+Ø�&‰>×Ñ¤2§8¡8Ò+Ð+Ñ+r.   c                óP  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||«      }t	        j
                  t        j                  |«      «      }t        j                  ||«       |d   j                  t        j                  k(  sJ ‚y )Ns   
col1,col2
r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   zHtest_parallel_blank_line_before_header_matches_serial.<locals>.<genexpr>ô  s*   è ø€ Ò%TÀA¨¨¨1¨Q°©U¨G°2Ð&6×&=Ñ&=×&?Ñ%Tùr"  r’  z	blank.csvr  r'  r  s         r,   Ú5test_parallel_blank_line_before_header_matches_serialr,  ò  s…   € à
˜SŸX™XÑ%TÌÈsËÔ%TÓTÑ
T€CØ�kÑ!€DØ×Ñ�SÔä" 4¨Ó5€FÜ�{‰{œ2Ÿ:™: c›?Ó+€HÜ×Ñ˜& (Ô+Ø�&‰>×Ñ¤2§8¡8Ò+Ð+Ñ+r.   zhead,kwargss    a,"line
break",cFIRST,ROW,HERE
s   a,b,cFIRST,ROW,HERE

s   junka,b,c
FIRST,ROW,HERE

r9   rG   s   junkFIRST,ROW,HERE

)r9   r:   c                óX  — |dj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||fi |¤Ž}t	        j
                  t        j                  |«      fi |¤Ž}t        j                  ||«       |j                  d   j                  «       g d¢k(  sJ ‚y )Nr.   c              3  óP   K  — | ]  }d |› d|› d|› d�j                  «       –— Œ  y­w)Úsz,tz,ur~   Nr¤  rö   s     r,   rù   zCtest_parallel_bare_cr_before_data_matches_serial.<locals>.<genexpr>  s.   è ø€ ÒK¸1˜A˜a˜S  1 # R¨ s¨"Ð-×4Ñ4×6ÑKùó   ‚$&r’  zbare_cr.csvr   )ÚFIRSTÚROWÚHERE)rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  ÚilocÚtolist)rK   rL   Úheadr0  r  r(   r5  rf  s           r,   Ú0test_parallel_bare_cr_before_data_matches_serialr7  þ  s•   € ð �—‘ÑKÄÀcÃ
ÔKÓKÑ
K€CØ�mÑ#€DØ×Ñ�SÔä" 4¨Ñ?¸Ñ?€FÜ�{‰{œ2Ÿ:™: c›?Ñ5¨fÑ5€HÜ×Ñ˜& (Ô+Ø�;‰;�q‰>× Ñ Ó"Ò&>Ò>Ð>Ñ>r.   zpreamble,skiprows))r  r   )s      
r   )s   junk1
junk2

rÄ   c                ó:  — |dj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||d |¬«      }t	        j
                  t        j                  |«      d |¬«      }t        j                  ||«       |j                  dk(  sJ ‚y )Nr.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   zEtest_parallel_blank_first_data_line_matches_serial.<locals>.<genexpr>&  r!  r"  r’  r˜  rÞ   )r’  rÄ   )rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  Úshape)rK   rL   Úpreambler9   r  r(   r5  rf  s           r,   Ú2test_parallel_blank_first_data_line_matches_serialr<    s†   € ð  �S—X‘XÑLÄÀsÃÔLÓLÑ
L€CØÐ'Ñ'€DØ×Ñ�SÔä" 4¨¸TÈHÔU€FÜ�{‰{œ2Ÿ:™: c›?°4À(ÔK€HÜ×Ñ˜& (Ô+Ø�<‰<˜8Ò#Ð#Ñ#r.   c                óþ   ‡— | dz  }|j                  d«       g Šˆfd„}|j                  d|«       d}t        j                  t        |¬«      5  t        ||d ¬«       d d d «       ‰d gk(  sJ d«       ‚y # 1 sw Y   ŒxY w)	Nzblank_only.csvsô  



















































































































































































































































































































































































































































































































c                óD   •— t        | ||«      }‰j                  |«       |S r  )r   r…  )r†  rk   r4  r5  Úreturneds       €r,   rŠ  z1test_parallel_all_blank_lines_raises.<locals>.spy:  s"   ø€ Ü# H¨d°IÓ>ˆØ�‰˜ÔØˆr.   z,pandas.io.parsers.readers._read_csv_parallelzNo columns to parse from filerÅ  rÇ   z#the parallel path did not fall back)rc   rH   r×   rÈ  r   r  )rK   rL   r(   rŠ  rÊ  r?  s        @r,   Ú$test_parallel_all_blank_lines_raisesr@  0  s‡   ø€ ð
 Ð&Ñ&€DØ×Ñ�[Ô!à€Hôð
 ×ÑÐFÈÔLà
)€CÜ	�‰”~¨SÔ	1ñ >Ü˜d K¸Õ=÷>ð ˜�vÒÐDÐDÓDÑ÷	>ð >ús   ÁA3Á3A<c                óÚ   — dddz  z   dz   }| dz  }|j                  |«       t        ||«      }t        j                  t	        j
                  |«      «      }t        j                  ||«       y )Nr  ó   ar\  s   ,bzlongline.csv)rc   r  r#   r/  r¸  r¹  ra  rb  r  s         r,   Útest_parallel_single_long_linerC  I  sa   € ð ˜4 %™<Ñ
'¨%Ñ
/€CØ�nÑ$€DØ×Ñ�SÔä" 4¨Ó5€FÜ�{‰{œ2Ÿ:™: c›?Ó+€HÜ×Ñ˜& (Õ+r.   z.WASM cannot spawn threads, so no split happensc                ó  ‡— | dz  }dddz  z   dz   }|j                  dddz  z   |z   dd	z  z   d
¬«       g Šˆfd„}|j                  dd«       |j                  d|«       t        j                  dd«      5  t        j                  |«      }d d d «       t        j                  dd«      5  t        j                  |«      }d d d «       t        j                  «       ‰sJ d«       ‚‰d   dk\  sJ ‚y # 1 sw Y   ŒgxY w# 1 sw Y   Œ?xY w)NrO   z1,Ú9i;œ  r~   rñ   z1,2
r\  r   rQ   rR   c                ó^   •— t        | ||g|¢­Ž }‰j                  t        |«      dz
  «       |S r  )r   r…  rá   )r†  r‡  r  rˆ  r  Úchunk_countss        €r,   rŠ  z4test_parallel_long_line_keeps_the_split.<locals>.spyc  s2   ø€ Ü*¨8°X¸zÐQÈDÒQˆØ×ÑœC ›L¨1Ñ,Ô-Øˆr.   r·  rG   r‹  rÀ  r	  úthe parallel path did not runr   rv  )rV   rH   r#   rÁ  r/  ra  rb  )rK   rL   r(   ÚblobrŠ  rf  r5  rG  s          @r,   Ú'test_parallel_long_line_keeps_the_splitrJ  U  s  ø€ ð �jÑ €DØ�#˜‘,Ñ Ñ%€DØ‡O�OØ�'˜E‘/Ñ! DÑ(¨7°VÑ+;Ñ;Àgð ô ð €Lôð
 ×ÑÐLÈaÔPØ×ÑÐLÈcÔRä	×	Ñ	Ð-¨qÓ	1ñ %Ü—;‘;˜tÓ$ˆ÷%ä	×	Ñ	Ð-¨qÓ	1ñ #Ü—‘˜TÓ"ˆ÷#ä×Ñ˜& (Ô+ñ Ð8Ð8Ó8ˆ<Ø˜‰?˜aÒÐÑ÷%ð %ú÷#ð #ús   Á5C1Â)C=Ã1C:Ã=Dc                óD  — dj                  d„ t        d«      D «       «      }d|z   dz   |z   }| dz  }|j                  |«       t        ||«      }t	        j
                  t        j                  |«      «      }t        j                  ||«       |j                  d   dk(  sJ ‚y )	Nr.   c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wrô   r¤  rö   s     r,   rù   zBtest_parallel_mixed_dtype_column_matches_serial.<locals>.<genexpr>{  s%   è ø€ Ò?¨q˜�s˜!˜A˜3˜b�\×(Ñ(×*Ñ?ùr  r’  r  s	   oops,999
z	mixed.csvr  Ú0r  )rK   rL   Úcleanr  r(   r5  rf  s          r,   Ú/test_parallel_mixed_dtype_column_matches_serialrO  v  s‘   € ð
 �H‰HÑ?´E¸#³JÔ?Ó?€EØ
˜5Ñ
  =Ñ
0°5Ñ
8€CØ�kÑ!€DØ×Ñ�SÔä" 4¨Ó5€FÜ�{‰{œ2Ÿ:™: c›?Ó+€HÜ×Ñ˜& (Ô+à�:‰:�iÑ  CÒ'Ð'Ñ'r.   c                ó  — t        j                  d«       | dz  }dj                  d„ t        d«      D «       «      }|j	                  d|z   dz   d¬«       |j                  d	d
«       t        j                  dd
«      5  t        j                  |d¬«      }d d d «       t        j                  dd«      5  t        j                  |d¬«      }d d d «       t        j                  «       y # 1 sw Y   ŒVxY w# 1 sw Y   Œ,xY w)Nrx   rO   r~   c              3  ó2   K  — | ]  }d |dz  › d|› �–— Œ y­w)r/  é   rõ   Nr¾   rö   s     r,   rù   zAtest_parallel_deferred_strings_pyarrow_backend.<locals>.<genexpr>Ž  s!   è ø€ Ò;¨!�q˜˜R™˜  ! Ô%Ñ;ùr›  r\  rñ   rQ   rR   r·  rG   rÀ  ©rR  r	  )r×   Úimportorskiprû   rü   rV   rH   r#   rÁ  r/  ra  rb  ©rK   rL   r(   Úrowsr¼  r½  s         r,   Ú.test_parallel_deferred_strings_pyarrow_backendrW  ‡  sÚ   € ô
 ×Ñ˜	Ô"Ø�jÑ €DØ�9‰9Ñ;¬u°T«{Ô;Ó;€DØ‡O�O�G˜d‘N TÑ)°G€OÔ<Ø×ÑÐLÈaÔPä	×	Ñ	Ð-¨qÓ	1ñ <Ü—‘˜T°Ô;ˆ÷<ä	×	Ñ	Ð-¨qÓ	1ñ >Ü—;‘;˜t°9Ô=ˆ÷>ä×Ñ˜( FÕ+÷	<ð <ú÷>ð >ús   Á=C*Â3C6Ã*C3Ã6C?zDignore:The 'future.infer_string' option:pandas.errors.Pandas4Warningc           	     ó  — t        j                  d«       g d¢}|D �cg c]#  }dj                  d„ t        |«      D «       «      ‘Œ% }}| dz  }dj                  d„ |dz  D «       «      }|j	                  d|z   d	¬
«       |j                  dd«       t        j                  dddddd«      5  t        j                  |«      }d d d «       t        j                  dddddd«      5  t        j                  |«      }d d d «       t        j                  «       |d   j                  t        j                  dt        j                  ¬«      k(  sJ ‚|d   j                  «       |dz  k(  sJ ‚y c c}w # 1 sw Y   Œ¯xY w# 1 sw Y   ŒƒxY w)Nrx   )	rG   rÄ   é   rï  é   é   r#  é!   é@   rò   c              3  óP   K  — | ]  }t        t        d «      |dz  z   «      –— Œ  y­w)r¦   é   N)ÚchrÚord)r÷   Úposs     r,   rù   zCtest_parallel_deferred_strings_token_width_tiers.<locals>.<genexpr>¤  s"   è ø€ ÒA¨S””C˜“H˜s R™xÑ'×(ÑAùr0  z	tiers.csvc              3  óH   K  — | ]  }|› d |j                  «       › d�–— Œ y­wrô   )Úupper)r÷   Úvalues     r,   rù   zCtest_parallel_deferred_strings_token_width_tiers.<locals>.<genexpr>§  s#   è ø€ ÒJ°E�e�W˜A˜eŸk™k›m˜_¨BÔ/ÑJùr  i�  rñ   rQ   rR   r·  rG   zfuture.infer_stringTúmode.string_storagerÀ  r	  r¦   )Úna_value)r×   rT  rû   rü   rV   rH   r#   rÁ  r/  ra  rb  r;  ÚStringDtyper    rp  r5  )	rK   rL   ÚwidthsÚwidthÚvaluesr(   rV  r¼  r½  s	            r,   Ú0test_parallel_deferred_strings_token_width_tiersrl  ™  sy  € ô ×Ñ˜	Ô"Ú/€FàOUöØFKˆ�‰ÑA´E¸%³LÔAÕAð€Fð ð �kÑ!€DØ�7‰7ÑJ¸VÀc¹\ÔJÓJ€DØ‡O�O�G˜d‘N¨W€OÔ5Ø×ÑÐLÈaÔPô 
×	Ñ	ØØØØØØ	ó
ñ #ô —‘˜TÓ"ˆ÷#ô 
×	Ñ	ØØØØØØ	ó
ñ %ô —;‘;˜tÓ$ˆ÷%ô ×Ñ˜( FÔ+Ø�#‰;×Ñ¤§¡¨yÄ2Ç6Á6Ô JÒJÐJÐJØ�#‰;×ÑÓ 6¨C¡<Ò/Ð/Ñ/ùòC÷#ð #ú÷%ð %ús   ž(E)Â*E.Ã"E:Å.E7Å:Fc                óÜ  — dj                  d„ t        d«      D «       «      }d|z   dz   |z   }| dz  }|j                  |d¬«       |j                  d	d
«       t	        j
                  dd
«      5  t	        j                  |«      }d d d «       t	        j
                  dd«      5  t	        j                  |«      }d d d «       t        j                  «       y # 1 sw Y   ŒTxY w# 1 sw Y   Œ,xY w)Nrò   c              3  ó,   K  — | ]  }|› d |› d�–— Œ y­wrô   r¾   rö   s     r,   rù   zDtest_parallel_deferred_strings_mixed_chunk_dtypes.<locals>.<genexpr>Ë  s   è ø€ Ò6 Q�q�c˜˜1˜#˜R”LÑ6ùrú   iÐ  z
col1,col2
ztext,7
zmixed_str.csvrQ   rR   r·  rG   rÀ  r	  ©	rû   rü   rV   rH   r#   rÁ  r/  ra  rb  )rK   rL   Úchunkr  r(   r¼  r½  s          r,   Ú1test_parallel_deferred_strings_mixed_chunk_dtypesrq  Ç  sÓ   € ð �G‰GÑ6¬%°«+Ô6Ó6€EØ
˜%Ñ
 *Ñ
,¨uÑ
4€CØ�oÑ%€DØ‡O�O�C '€OÔ*Ø×ÑÐLÈaÔPä	×	Ñ	Ð-¨qÓ	1ñ #Ü—‘˜TÓ"ˆ÷#ä	×	Ñ	Ð-¨qÓ	1ñ %Ü—;‘;˜tÓ$ˆ÷%ä×Ñ˜( FÕ+÷	#ð #ú÷%ð %ús   Á-CÂ!C"ÃCÃ"C+r©   Fc                ó^  — dddz  z   }| dz  }|j                  |«       t        |||¬«      }t        j                  t	        j
                  |«      |¬«      }t        j                  ||«       |d   dk(  j                  «       dk(  sJ ‚|d   j                  «       j                  «       dk(  sJ ‚y )	Ns¼  col
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
hello
s   nan
9223372036854775808
é¸  z
uint64.csvr«   Úcolrp  r   )
rc   r  r#   r/  r¸  r¹  ra  rb  ÚsumÚisna)rK   rL   r©   r  r(   r5  rf  s          r,   Ú-test_parallel_low_memory_false_matches_serialrw  Ø  s§   € ð &Ð)LÐPTÑ(TÑ
T€CØ�lÑ"€DØ×Ñ�SÔä" 4¨ÀÔL€FÜ�{‰{œ2Ÿ:™: c›?°zÔB€HÜ×Ñ˜& (Ô+à�5‰M˜UÑ"×'Ñ'Ó)¨QÒ.Ð.Ð.Ø�%‰=×ÑÓ×#Ñ#Ó%¨Ò-Ð-Ñ-r.   r0  r@  ÚMISSINGrt  rR  Únumpy_nullablec                ó<  — |j                  d«      rdnd}|› d�dz  }| dz  }|j                  d|z   d¬	«       t        ||fi |¤Ž}t        j                  d
d«      5  t        j
                  |fi |¤Ž}d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)Nr@  rx  rp  z
9223372036854775808
rs  zuint64_default_lm.csváÈ	  col
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
text
rQ   rR   rÀ  rG   )ÚgetrV   r  r#   rÁ  r/  ra  rb  )rK   rL   r0  Útokenr¨  r(   r5  rf  s           r,   Ú/test_parallel_uint64_na_conflict_matches_serialr~  î  s£   € ð   Ÿ™ KÔ0‰I°e€EØˆWÐ+Ð,¨tÑ3€DØÐ-Ñ-€DØ‡O�OÐ,¨tÑ3¸g€OÔFä" 4¨Ñ?¸Ñ?€FÜ	×	Ñ	Ð-¨qÓ	1ñ /Ü—;‘;˜tÑ. vÑ.ˆ÷/ä×Ñ˜& (Õ+÷/ð /ús   ÁBÂBc                ó‚  ‡‡— ddz  }| dz  }|j                  d|z   d¬«       g Št        j                  Šˆˆfd„}|j                  t        d|«       t	        ||d	¬
«      }‰d	gk(  sJ ‚t        j                  dd«      5  t        j                  |d	¬
«      }d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)Nznan
9223372036854775808
rs  zuint64_no_filter.csvr{  rQ   rR   c                 ó>   •—  ‰| i |¤Ž}‰j                  |d u «       |S r  ©r…  )rˆ  r0  r5  Ú	fell_backÚorigs      €€r,   rŠ  z=test_parallel_uint64_na_conflict_na_filter_false.<locals>.spy  s)   ø€ Ù�tÐ&˜vÑ&ˆØ×Ñ˜ 4˜Ô(Øˆr.   r   F)rB  rÀ  rG   )
rV   rI   r   rH   r  r#   rÁ  r/  ra  rb  )	rK   rL   r¨  r(   rŠ  r5  rf  r‚  rƒ  s	          @@r,   Ú0test_parallel_uint64_na_conflict_na_filter_falser„  	  s¾   ù€ ð (¨$Ñ.€DØÐ,Ñ,€DØ‡O�OÐ,¨tÑ3¸g€OÔFà€IÜ×&Ñ&€Dõð
 ×ÑœÐ"6¸Ô<ä" 4¨ÀÔF€FØ˜˜ÒÐÐÜ	×	Ñ	Ð-¨qÓ	1ñ 6Ü—;‘;˜t¨uÔ5ˆ÷6ä×Ñ˜& (Õ+÷6ð 6ús   Á>B5Â5B>c                ó,  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||«      }t	        j
                  t        j                  |«      «      }t        j                  ||«       t        |«      dk(  sJ ‚y )Ns   "col
1",col2
r.   c              3  óJ   K  — | ]  }d |› d|› d�j                  «       –— Œ y­wr   r¤  rö   s     r,   rù   zHtest_parallel_quoted_newline_in_header_matches_serial.<locals>.<genexpr>'  s'   è ø€ Ò'TÀA¨!¨A¨3¨b°°°2¨×(=Ñ(=×(?Ñ'Tùr¦  r’  rž  )rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  rá   r  s         r,   Ú5test_parallel_quoted_newline_in_header_matches_serialr‡  "  s}   € ð
 ˜sŸx™xÑ'TÌÈsËÔ'TÓTÑ
T€CØ�iÑ€DØ×Ñ�SÔä" 4¨Ó5€FÜ�{‰{œ2Ÿ:™: c›?Ó+€HÜ×Ñ˜& (Ô+Üˆv‹;˜#ÒÐÑr.   c                óü   — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       d}t        j                  t
        |¬«      5  t        ||dd	i¬
«       d d d «       y # 1 sw Y   y xY w)Nr   r.   c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wrô   r¤  rö   s     r,   rù   z7test_parallel_storage_options_raises.<locals>.<genexpr>4  s%   è ø€ ÒH¸   1 Q C r˜l×1Ñ1×3ÑHùr  r’  zso.csvz?storage_options passed with file object or non-fsspec file pathrÅ  r®   Tr¯   )rû   rü   rc   r×   rÈ  rÉ  r  r  s        r,   Ú$test_parallel_storage_options_raisesrŠ  1  su   € ð �S—X‘XÑH¼UÀ3»ZÔHÓHÑ
H€CØ�hÑ€DØ×Ñ�SÔà
K€CÜ	�‰”z¨Ô	-ñ QÜ˜d KÀ&È$ÀÕP÷Q÷ Qñ Qús   ÁA2Á2A;c                ó   — ddj                  d„ t        d«      D «       «      z   dz   dj                  d„ t        dd«      D «       «      z   }| dz  }|j                  |«       t        j                  t
        d	¬
«      5  t        ||d¬«      }d d d «       t        j                  t
        d	¬
«      5  t        j                  t        j                  |«      d¬«      }d d d «       t        j                  «       y # 1 sw Y   ŒnxY w# 1 sw Y   Œ,xY w)Nr   r.   c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wrô   r¤  rö   s     r,   rù   z?test_parallel_on_bad_lines_warn_line_numbers.<locals>.<genexpr>B  s%   è ø€ Ò=¨Q�a�S˜˜!˜˜B�<×&Ñ&×(Ñ=ùr  r”  s   1,2,3,4
c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wrô   r¤  rö   s     r,   rù   z?test_parallel_on_bad_lines_warn_line_numbers.<locals>.<genexpr>D  s%   è ø€ ÒB¨Q�a�S˜˜!˜˜B�<×&Ñ&×(ÑBùr  éX  úbad.csvzline 302rÅ  Úwarnr³   ©rû   rü   rc   ra  Úassert_produces_warningr	   r  r#   r/  r¸  r¹  rb  r  s         r,   Ú,test_parallel_on_bad_lines_warn_line_numbersr“  =  sñ   € ð 	Ø
�(‰(Ñ=´%¸³*Ô=Ó
=ñ	>à
ñ	ð �(‰(ÑB´%¸¸S³/ÔBÓ
Bñ	Cð ð �iÑ€DØ×Ñ�SÔä	×	#Ñ	#¤M¸Ô	Dñ OÜ& t¨[ÀvÔNˆ÷Oä	×	#Ñ	#¤M¸Ô	Dñ EÜ—;‘;œrŸz™z¨#›¸VÔDˆ÷Eä×Ñ˜& (Õ+÷	Oð Oú÷Eð Eús   Á<C8Â.+DÃ8DÄDc                óJ  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        ||«      }t	        j
                  t        j                  |«      «      }t        j                  ||«       t        |j                  d d «      ddgk(  sJ ‚y )	Nr  r.   c              3  óV   K  — | ]!  }d |› d|› d|dz  › d�j                  «       –— Œ# y­wr|  r¤  rö   s     r,   rù   z>test_parallel_implicit_index_matches_serial.<locals>.<genexpr>T  s7   è ø€ ò $Ø-.ˆ#ˆaˆS��!��A�a˜!‘e�W˜BÐ×&Ñ&×(ñ$ùs   ‚')r’  rz  rÄ   Úidx0Úidx1)rû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  Úlistr   r  s         r,   Ú+test_parallel_implicit_index_matches_serialr™  P  s™   € ð ˜3Ÿ8™8ñ $Ü27¸³*ô$ó ñ €Cð �nÑ$€DØ×Ñ�SÔä" 4¨Ó5€FÜ�{‰{œ2Ÿ:™: c›?Ó+€HÜ×Ñ˜& (Ô+Ü�—‘˜R˜aÐ Ó! f¨fÐ%5Ò5Ð5Ñ5r.   c                ón  —  G d„ dt         j                  «      }ddj                  d„ t        d«      D «       «      z   }| dz  }|j	                  |«       t        |||¬«      }t        j                  t        j                  |«      |¬«      }t        j                  ||«       |j                  d	   d
k(  sJ ‚y )Nc                  ó<   — e Zd ZdZdZdZdZdZej                  Z
dZy)úCtest_parallel_dialect_escapechar_matches_serial.<locals>.EscDialectrõ   rJ  TFz
r�   N)rÓ   rÔ   rÕ   r�   r”   rL  r?  r|   ÚcsvÚ
QUOTE_NONErK  rž   r¾   r.   r,   Ú
EscDialectrœ  e  s*   „ Øˆ	Øˆ	ØˆØ ÐØˆØ—.‘.ˆØ‰
r.   rŸ  r  r.   c              3  óJ   K  — | ]  }d |› d|› d�j                  «       –— Œ y­w)z
text\
morerõ   r~   Nr¤  rö   s     r,   rù   zBtest_parallel_dialect_escapechar_matches_serial.<locals>.<genexpr>n  s-   è ø€ ò $Ø./ˆ,�q�c˜˜1˜#˜RÐ ×'Ñ'×)ñ$ùr¦  r’  zdialect.csvr¢   r  z
text
more0)r�  ÚDialectrû   rü   rc   r  r#   r/  r¸  r¹  ra  rb  r  )rK   rL   rŸ  r  r(   r5  rf  s          r,   Ú/test_parallel_dialect_escapechar_matches_serialr¢  `  s¡   € ô
”S—[‘[ô ð ˜3Ÿ8™8ñ $Ü38¸³:ô$ó ñ €Cð �mÑ#€DØ×Ñ�SÔä" 4¨¸jÔI€FÜ�{‰{œ2Ÿ:™: c›?°JÔ?€HÜ×Ñ˜& (Ô+Ø�:‰:�iÑ  MÒ1Ð1Ñ1r.   c                óØ  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       d}t        j                  t
        |¬«      5  t        ||d¬	«      }d d d «       t        j                  t
        |¬«      5  t        j                  t        j                  |«      d¬	«      }d d d «       t        j                  «       y # 1 sw Y   ŒnxY w# 1 sw Y   Œ,xY w)
Ns   col1;;col2
r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­w)r�   rÄ   r~   Nr¤  rö   s     r,   rù   z=test_parallel_multichar_sep_matches_serial.<locals>.<genexpr>~  s*   è ø€ Ò$TÀA¨ s¨"¨Q°©U¨G°2Ð%6×%=Ñ%=×%?Ñ$Tùr"  r’  zmultisep.csvú#Falling back to the 'python' enginerÅ  r�   )rS  r‘  )rK   rL   r  r(   Úwarn_msgr5  rf  s          r,   Ú*test_parallel_multichar_sep_matches_serialr§  z  sÂ   € ð ˜CŸH™HÑ$TÌÈsËÔ$TÓTÑ
T€CØ�nÑ$€DØ×Ñ�SÔà4€HÜ	×	#Ñ	#¤M¸Ô	Bñ DÜ& t¨[¸dÔCˆ÷Dä	×	#Ñ	#¤M¸Ô	Bñ :Ü—;‘;œrŸz™z¨#›°DÔ9ˆ÷:ä×Ñ˜& (Õ+÷	Dð Dú÷:ð :ús   ÁCÂ
+C ÃCÃ C)c                ó:  — t        d«      D �cg c]  }|d›d|dz  d›�‘Œ }}| j                  ddj                  |«      z   dz   j                  d«      «       |j	                  dd	«       t        t        | «      d
d
«      }t        t        | «      d|d¬«      }|d	   }| j                  «       }|j                  d|«      }	|	|z
  t        |«      k(  sJ ‚t        | d«      5 }
|
j                  |«       |
j                  |«       ddd«       |S c c}w # 1 sw Y   |S xY w)ay  Write a fixed-width CSV, then overwrite the line at the second chunk
    boundary with *replacement* (same byte length, so offsets stay valid).

    Returns the boundary, for :func:`_assert_chunk_starts_at` to check against
    the split the read actually plans - hard-coding a count here that the read
    does not use would put the line in the middle of a chunk instead.
    é   Ú06drõ   rÄ   rñ   r~   rQ   ú2pandas.io.parsers.readers._PARALLEL_MIN_CHUNK_ROWSrG   r   é   r	  ©r4  r  úr+bN)rü   rc   rû   r¥  rH   r   rà   r   r  r   rá   rY   ÚseekÚwrite)r(   ÚreplacementrL   rø   rV  r  r  Úboundaryr  Úline_endÚfds              r,   Ú_write_with_line_at_chunk_startrµ  Š  s  € ô -2°$«KÖ8 qˆq�ˆg�Q�q˜1‘u˜S�kÒ"Ð8€DÐ8ð 	×Ñ�g §	¡	¨$£Ñ/°$Ñ6×>Ñ>¸wÓGÔHð ×ÑÐLÈaÔPÜ(¬¨T«°A°qÓ9€Jô '¤s¨4£y°"°jÈAÔN€GØ�q‰z€HØ
�/‰/Ó
€CØ�y‰y˜ Ó)€HØ�hÑ¤# kÓ"2Ò2Ð2Ð2Ü	ˆd�EÓ	ð ˜bØ
�‰�ÔØ
�‰�Ô÷ð €Oùò' 9÷ ð €Oús   ŽDÃ#DÄDc                óJ   ‡‡— g Št         Šˆˆfd„}| j                  d|«       ‰S )z9Record the byte offsets each planned split actually uses.c                ó@   •—  ‰| ||g|¢­Ž }‰j                  |«       |S r  r�  )r†  r‡  r  rˆ  r  ÚrealÚseens        €€r,   rŠ  z"_spy_on_chunk_offsets.<locals>.spy­  s'   ø€ Ù�x ¨:Ð=¸Ò=ˆØ�‰�GÔØˆr.   r‹  )r   rH   )rL   rŠ  r¸  r¹  s     @@r,   Ú_spy_on_chunk_offsetsrº  ¨  s*   ù€ à€DÜ#€Dõð
 ×ÑÐLÈcÔRØ€Kr.   c                óB   — | sJ d«       ‚|| d   v sJ |› d| d   › �«       ‚y )NrH  r   z is not a chunk start in r¾   )r¹  r²  s     r,   Ú_assert_chunk_starts_atr¼  ¶  s9   € ñ Ð0Ð0Ó0ˆ4Ø�t˜A‘wÑÐO 8 *Ð,EÀdÈ1ÁgÀYÐ OÓOÑr.   c                óÎ   — | dz  }t        |d|«      }t        |«      }t        j                  t        d¬«      5  t        ||«       d d d «       t        ||«       y # 1 sw Y   ŒxY w)Nú
ragged.csvó   11,22,33,4444zExpected 2 fieldsrÅ  )rµ  rº  r×   rÈ  r   r  r¼  )rK   rL   r(   r²  r¹  s        r,   Ú/test_parallel_ragged_line_at_chunk_start_raisesrÀ  ¾  s_   € ð
 �lÑ"€DÜ.¨tÐ5EÀ{ÓS€HÜ  Ó-€Dä	�‰”{Ð*=Ô	>ñ 1Ü˜d KÔ0÷1ä˜D (Õ+÷1ð 1ús   ¹AÁA$c                óh  — | dz  }t        |d|«      }t        |«      }t        |«      }t        j                  dd«      5  t        j
                  |d¬«      }d d d «       t        ||d¬«      }t        j                  |«       t        |«      dk(  sJ ‚t        ||«       |dgk(  sJ ‚y # 1 sw Y   ŒRxY w)	Nr¾  r¿  rÀ  rG   Úskipr³   iŸ  rÎ  )rµ  rº  rÏ  r#   rÁ  r/  r  ra  rb  rá   r¼  )rK   rL   r(   r²  r¹  rÐ  rf  r5  s           r,   Ú<test_parallel_ragged_line_at_chunk_start_skip_matches_serialrÃ  Ì  s±   € ð �lÑ"€DÜ.¨tÐ5EÀ{ÓS€HÜ  Ó-€DÜ˜{Ó+€Hä	×	Ñ	Ð-¨qÓ	1ñ :Ü—;‘;˜t°&Ô9ˆ÷:ä" 4¨À6ÔJ€FÜ×Ñ˜& (Ô+Üˆv‹;˜$ÒÐÐÜ˜D (Ô+Ø˜�xÒÐÑ÷:ð :ús   ¿B(Â(B1r;  r¦   r(  r<  c                ó\  — | dz  }t        d«      D �cg c]  }|d›d|dz  d›�‘Œ }}|j                  ddj                  |«      z   dz   j                  d«      «       t	        t        |«      d	d	«      }t        t        |«      d
|d¬«      d   }t        |d«      5 }|j                  |dz
  «       |j                  d«       d d d «       t        |«      }	t        j                  dd«      5  t        j                  |fi |¤Ž}
d d d «       |j                  dd«       t        j                  dd«      5  t        j                  |fi |¤Ž}d d d «       t        j                   
«       d|d   j"                  v sJ ‚t%        |	|«       y c c}w # 1 sw Y   ŒËxY w# 1 sw Y   Œ—xY w# 1 sw Y   Œ\xY w)Nz
quoted.csvr"  rª  rõ   rÄ   rñ   r~   rQ   r   rô  r­  r®  é   s   "multi
more of note"rÀ  rG   r·  zmulti
more of noterÏ   )rü   rc   rû   r¥  r   rà   r   rY   r¯  r°  rº  r#   rÁ  r/  rH   ra  rb  rk  r¼  )rK   rL   r0  r(   rø   rV  r  r²  r´  r¹  rf  r5  s               r,   ÚCtest_parallel_quoted_newline_at_chunk_boundary_converts_like_serialrÆ  Þ  s’  € ð �lÑ"€DÜ,1°&«MÖ: qˆq�ˆg�Q�q˜1‘u˜S�kÒ"Ð:€DÐ:Ø×Ñ�g §	¡	¨$£Ñ/°$Ñ6×>Ñ>¸wÓGÔHÜ(¬¨T«°A°qÓ9€JÜ'¬¨D«	°1°jÈAÔNÈqÑQ€HÜ	ˆd�EÓ	ð +˜bà
�‰�˜1‘ÔØ
�‰Ð)Ô*÷+ô ! Ó-€Dä	×	Ñ	Ð-¨qÓ	1ñ /Ü—;‘;˜tÑ. vÑ.ˆ÷/à×ÑÐLÈaÔPÜ	×	Ñ	Ð-¨qÓ	1ñ -Ü—‘˜TÑ, VÑ,ˆ÷-ä×Ñ˜& (Ô+Ø  F¨3¡K×$6Ñ$6Ñ6Ð6Ð6Ü˜D (Õ+ùò# ;÷+ð +ú÷/ð /ú÷-ð -ús)   “FÂ&F
Ã)FÄ0F"Æ
FÆFÆ"F+c           	     óâ  — dgt        d«      D �cg c]  }dd|› d|› �z   ‘Œ c}z   }| dz  }|j                  dj                  |«      dz   d¬	«       t        j                  d
d«      5  t        j
                  |«      }d d d «       t        |«      }t        ||«      }t        j                  |«       |d   j                  d   dk(  j                  «       sJ ‚|dgk(  sJ ‚y c c}w # 1 sw Y   ŒixY w)Nza,br©  u   ï»¿r¿   rõ   zbom.csvr~   rQ   rR   rÀ  rG   r¦   r   rÎ  )rü   rV   rû   r#   rÁ  r/  rÏ  r  ra  rb  rà   r  )rK   rL   rø   rý   r(   rf  rÐ  r5  s           r,   Ú-test_parallel_bom_bytes_mid_file_match_serialrÈ  ý  sì   € ð
 ˆG´u¸T³{ÖC°!�x A a S¨¨!¨ +Ó-ÒCÑC€EØ�iÑ€DØ‡O�O�D—I‘I˜eÓ$ tÑ+°g€OÔ>ä	×	Ñ	Ð-¨qÓ	1ñ %Ü—;‘;˜tÓ$ˆ÷%ä˜{Ó+€HÜ" 4¨Ó5€FÜ×Ñ˜& (Ô+Ø�3‰K�O‰O˜AÑ (Ñ*×/Ñ/Ô1Ð1Ð1Ø˜�xÒÐÑùò D÷%ð %ús   �C Á'C%Ã%C.c                óš  — dj                  d„ t        d«      D «       «      }| dz  }|j                  d|j                  «       z   «       t	        j
                  dd«      5  t	        j                  |d dd	g¬
«      }d d d «       t        ||d dd	g¬
«      }t        j                  |«       |d   j                  d   dk(  sJ ‚y # 1 sw Y   ŒHxY w)Nrò   c              3  ó2   K  — | ]  }|› d |dz  › d�–— Œ y­wrš  r¾   rö   s     r,   rù   z>test_parallel_bom_at_file_start_header_none.<locals>.<genexpr>  s!   è ø€ Ò9¨�a�S˜˜!˜a™%˜ Ô#Ñ9ùr›  r©  zbom0.csvs   ï»¿rÀ  rG   r¦   rÏ   )r:   r:  r   )rû   rü   rc   r¥  r#   rÁ  r/  r  ra  rb  r4  )rK   rL   r¨  r(   rf  r5  s         r,   Ú+test_parallel_bom_at_file_start_header_nonerË    sÀ   € ð �7‰7Ñ9¬U°4«[Ô9Ó9€DØ�jÑ €DØ×Ñ�_ t§{¡{£}Ñ4Ô5ä	×	Ñ	Ð-¨qÓ	1ñ DÜ—;‘;˜t¨D¸¸c¸
ÔCˆ÷Dä" 4¨¸TÈ#ÈsÈÔT€FÜ×Ñ˜& (Ô+à�#‰;×Ñ˜AÑ !Ò#Ð#Ñ#÷Dð Dús   ÁCÃC
c                ó(  — | dz  }dj                  d„ t        d«      D «       «      }|j                  d|z   dz   d¬«       |j                  dd	«       t	        j
                  d
d«      5  t	        j
                  dd	«      5  t	        j                  |«      }d d d «       t	        j
                  dd«      5  t	        j                  |«      }d d d «       d d d «       t        j                  «       y # 1 sw Y   Œ\xY w# 1 sw Y   Œ4xY w# 1 sw Y   Œ8xY w)NrO   r~   c              3  ó0   K  — | ]  }|› d |dz  › �–— Œ y­w)rƒ  rÅ  Nr¾   rö   s     r,   rù   z<test_parallel_string_dtype_python_storage.<locals>.<genexpr>#  s   è ø€ Ò:¨˜�s˜"˜Q ™U˜G”_Ñ:ùó   ‚r\  rñ   rQ   rR   r·  rG   rf  rw   rÀ  r	  ro  rU  s         r,   Ú)test_parallel_string_dtype_python_storagerÏ    sð   € ð �jÑ €DØ�9‰9Ñ:¬e°D«kÔ:Ó:€DØ‡O�O�G˜d‘N TÑ)°G€OÔ<Ø×ÑÐLÈaÔPä	×	Ñ	Ð0°(Ó	;ñ )Ü×ÑÐ1°1Ó5ñ 	'Ü—[‘[ Ó&ˆF÷	'ä×ÑÐ1°1Ó5ñ 	)Ü—{‘{ 4Ó(ˆH÷	)÷)ô
 ×Ñ˜( FÕ+÷		'ð 	'ú÷	)ð 	)ú÷)ð )ús<   Á(DÁ?C0ÂDÂ3C<Ã	DÃ0C9	Ã5DÃ<D	ÄDÄDc                óê  — | dz  }dj                  d„ t        d«      D «       «      }|j                  d|z   dz   ddz  z   |z   dz   d¬«       |j                  d	d
«       t	        j
                  dd
«      5  t	        j                  |«      }d d d «       t	        j
                  dd«      5  t	        j                  |«      }d d d «       t        j                  «       y # 1 sw Y   ŒTxY w# 1 sw Y   Œ,xY w)NrO   r~   c              3  ó0   K  — | ]  }|› d |dz  › �–— Œ y­w©rõ   rÄ   Nr¾   rö   s     r,   rù   z/test_parallel_blank_line_run.<locals>.<genexpr>4  ó   è ø€ Ò8¨˜�s˜!˜A ™E˜7”^Ñ8ùrÎ  rt   rñ   r  rQ   rR   r·  rG   rÀ  r	  ro  )rK   rL   r(   rV  rf  r5  s         r,   Útest_parallel_blank_line_runrÔ  /  sã   € ð �jÑ €DØ�9‰9Ñ8¬U°3«ZÔ8Ó8€DØ‡O�OØ�$‰˜Ñ  u¡Ñ,¨tÑ3°dÑ:ÀWð ô ð ×ÑÐLÈaÔPä	×	Ñ	Ð-¨qÓ	1ñ %Ü—;‘;˜tÓ$ˆ÷%ä	×	Ñ	Ð-¨qÓ	1ñ #Ü—‘˜TÓ"ˆ÷#ä×Ñ˜& (Õ+÷	%ð %ú÷#ð #ús   Á4CÂ(C)ÃC&Ã)C2c                óX  — | dz  }dj                  d„ t        d«      D «       «      }dj                  d„ t        d«      D «       «      }|j                  d|z   dz   |z   dz   |z   dz   d¬	«       |j                  d
d«       |j                  dd«       t	        j
                  dd«      5  t	        j                  |d¬«      }d d d «       t	        j
                  dd«      5  t	        j                  |d¬«      }d d d «       t        j                  «       y # 1 sw Y   ŒVxY w# 1 sw Y   Œ,xY w)NrO   r~   c              3  ó0   K  — | ]  }|› d |dz  › �–— Œ y­wrÒ  r¾   rö   s     r,   rù   z2test_parallel_bad_line_run_skip.<locals>.<genexpr>E  rÓ  rÎ  rt   c              3  ó    K  — | ]  }d –— Œ y­w)z	x,y,z,w,vNr¾   )r÷   Ú_s     r,   rù   z2test_parallel_bad_line_run_skip.<locals>.<genexpr>F  s   è ø€ Ò5 A”KÑ5ùs   ‚r\  rñ   rQ   rR   r·  rG   r«  rÀ  rÂ  r³   r	  ro  )rK   rL   r(   rV  Úbadrf  r5  s          r,   Útest_parallel_bad_line_run_skiprÚ  A  s  € ð �jÑ €DØ�9‰9Ñ8¬U°3«ZÔ8Ó8€DØ
�)‰)Ñ5¬¨t«Ô5Ó
5€CØ‡O�O�G˜d‘N TÑ)¨CÑ/°$Ñ6¸Ñ=ÀÑDÈw€OÔWØ×ÑÐLÈaÔPð ×ÑÐLÈaÔPä	×	Ñ	Ð-¨qÓ	1ñ :Ü—;‘;˜t°&Ô9ˆ÷:ä	×	Ñ	Ð-¨qÓ	1ñ 8Ü—‘˜T°Ô7ˆ÷8ä×Ñ˜& (Õ+÷	:ð :ú÷8ð 8ús   Â'DÃD ÄDÄ D)c                óH  — | dz  }|j                  d«       |j                  dd«       t        j                  dd«      5  t        j                  |«      }d d d «       t        j                  |d¬«      }t        j                  |«       |d	   d
   dk(  sJ ‚y # 1 sw Y   ŒDxY w)Nznul_bool.csvs¥  a
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
True
"True xyz"
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
False
r·  rG   rÀ  r	  rw   rT   r¦   rq  zTrue xyz)rc   rH   r#   rÁ  r/  ra  rb  rÂ  s        r,   Ú)test_parallel_embedded_nul_boolean_columnrÜ  U  s™   € ð �nÑ$€DØ×ÑÐUÔVØ×ÑÐLÈaÔPä	×	Ñ	Ð-¨qÓ	1ñ #Ü—‘˜TÓ"ˆ÷#ä�{‰{˜4¨Ô1€HÜ×Ñ˜& (Ô+Ø�#‰;�sÑ˜}Ò,Ð,Ñ,÷	#ð #ús   ¿BÂB!c                ó    — t        j                  d¬«      5 }t        j                  d«        | |i |¤Ž}ddd«       ||fS # 1 sw Y   fS xY w)zBRun *func*, returning every warning it raises (no de-duplication).T©ÚrecordÚalwaysN)ÚwarningsÚcatch_warningsÚsimplefilter)Úfuncrˆ  r0  Úrecordedr5  s        r,   Ú_warnings_fromræ  d  sY   € ä	×	 Ñ	 ¨Ô	-ð '°Ü×Ñ˜hÔ'Ù�tÐ&˜vÑ&ˆ÷'ð �8ÐÐ÷'ð �8ÐÐús   —AÁAc                óh   ‡‡— g Št         j                  Šˆˆfd„}| j                  t         d|«       ‰S )zARecord how each parallel attempt ends: used, declined, or raised.c                 óŽ   •— 	  ‰| i |¤Ž}‰j                  |�d«       |S d«       |S # t         $ r ‰j                  d«       ‚ w xY w)NÚraisedrÎ  Údeclined)Ú	Exceptionr…  )rˆ  r0  r5  ÚoriginalrÐ  s      €€r,   Útrackedz _track_parallel.<locals>.trackedq  s]   ø€ ð	Ù˜tÐ. vÑ.ˆFð 	�‰ &Ð"4˜ÔEØˆð ;EÔEØˆøô	 ò 	Ø�O‰O˜HÔ%Øð	ús	   ƒ( ¨Ar   )rI   r   rH   )rL   rí  rì  rÐ  s     @@r,   rÏ  rÏ  l  s2   ù€ à€HÜ×*Ñ*€Hõð ×ÑœÐ"6¸Ô@Ø€Or.   c                ó   — d| › d�S )Nz5Both a converter and dtype were specified for column z# - only the converter will be used.r¾   )rl  s    r,   Ú_converter_dtype_warningrï  ~  s   € à
?À¸vð F+ð 	+ðr.   r:  r  Úcol2z2WASM stays serial, so no chunk repeats the warningc                ó¨  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        j	                  |t
        «      t        j	                  |d«      dœ}t        |«      }t        t        ||fi |¤Ž\  }}t        t        j                  t        j                  |«      fi |¤Ž\  }	}
|dgk(  sJ ‚t        j                  ||	«       |D �cg c]  }t        |j                   «      ‘Œ c}|D �cg c]  }t#        |«      ‘Œ c}k(  sJ ‚|d	   j$                  t&        u sJ ‚|d	   j(                  t*        k(  sJ ‚y c c}w c c}w )
Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   z;test_parallel_converter_dtype_warns_once.<locals>.<genexpr>Œ  ó*   è ø€ Ò#RÀ! q c¨¨1¨q©5¨'°Ð$4×$;Ñ$;×$=Ñ#Rùr"  r’  zconverter.csvr(  ©r<  r;  rÎ  r   )rû   rü   rc   ÚdictÚfromkeysr)  rÏ  ræ  r  r#   r/  r¸  r¹  ra  rb  rà   Úmessagerï  Úcategoryr	   ÚfilenameÚ__file__)rK   rL   r:  r  r(   r0  rÐ  r5  rå  rf  rØ  Úwarningrl  s                r,   Ú(test_parallel_converter_dtype_warns_oncerü  ‡  sD  € ð
 ˜3Ÿ8™8Ñ#RÄuÈSÃzÔ#RÓRÑ
R€CØ�oÑ%€DØ×Ñ�SÔä—m‘m E¬3Ó/Ü—‘˜u gÓ.ñ€Fô ˜{Ó+€Hä%Ü˜t [ñØ4:ñÑ€FˆHô !¤§¡¬b¯j©j¸«oÑHÀÑH�K€HˆaØ˜�xÒÐÐÜ×Ñ˜& (Ô+Ø08Ö9 WŒC�—‘Õ Ò9Ø38ö>Ø+/Ô  Õ&ò>ò ð ð ð �A‰;×Ñ¤=Ñ0Ð0Ð0à�A‰;×Ñ¤8Ò+Ð+Ñ+ùò :ùò >s   ÃE
ÄEz+WASM stays serial, so the gather never runsc                óT  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       d„ }|j                  t        d|«       dt
        idd	id
œ}t        |«      }t        j                  d¬«      5 }t        j                  d«       t        j                  t        d¬«      5  t        ||fi |¤Ž d d d «       d d d «       |dgk(  sJ ‚D �cg c]  }t        |j                  «      ‘Œ c}t!        d«      gk(  sJ ‚y # 1 sw Y   ŒLxY w# 1 sw Y   ŒPxY wc c}w )Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   z=test_parallel_gather_exception_still_warns.<locals>.<genexpr>ª  ó*   è ø€ Ò#SÀ! q c¨¨1¨q©5¨'°Ð$4×$;Ñ$;×$=Ñ#Sùr"  rq   úboom.csvc                 ó   — t        d«      ‚)NÚboom©ÚRuntimeError)rˆ  r0  s     r,   r  z8test_parallel_gather_exception_still_warns.<locals>.boom®  s   € Ü˜6Ó"Ð"r.   Ú_concatenate_chunksr  r(  rô  TrÞ  rà  r  rÅ  ré  )rû   rü   rc   rH   rI   r)  rÏ  rá  râ  rã  r×   rÈ  r  r  rà   r÷  rï  ©	rK   rL   r  r(   r  r0  rÐ  rå  rû  s	            r,   Ú*test_parallel_gather_exception_still_warnsr  ¤  s  € ð ˜3Ÿ8™8Ñ#SÄuÈTÃ{Ô#SÓSÑ
S€CØ�jÑ €DØ×Ñ�SÔò#ð ×ÑœÐ"7¸Ô>Ø#¤S˜M°V¸WÐ4EÑF€FÜ˜{Ó+€HÜ	×	 Ñ	 ¨Ô	-ð ?°Ü×Ñ˜hÔ'Ü�]‰]œ<¨vÔ6ñ 	?Ü! $¨Ñ>°vÒ>÷	?÷?ð
 ˜�zÒ!Ð!Ð!Ø08Ö9 WŒC�—‘Õ Ò9Ü  Ó(ð>ò ð ñ ÷		?ð 	?ú÷?ð ?üò :s*   Â1DÂ4DÃDÃD%ÄD	ÄDÄD"z&WASM stays serial, so no worker raisesc                ó(  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       d„ }t        |dœdd	id
œ}t	        |«      }t        j                  d¬«      5 }t        j                  d«       t        j                  t        d¬«      5  t        ||fi |¤Ž d d d «       d d d «       |dgk(  sJ ‚D �cg c]  }t        |j                  «      ‘Œ c}t        d«      gk(  sJ ‚y # 1 sw Y   ŒLxY w# 1 sw Y   ŒPxY wc c}w )Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   zFtest_parallel_worker_exception_falls_back_to_serial.<locals>.<genexpr>Â  rÿ  r"  rq   r   c                ó&   — | dk(  rt        d«      ‚| S ©NÚ1400r  r  ©re  s    r,   r  zAtest_parallel_worker_exception_falls_back_to_serial.<locals>.boomÆ  ó   € Ø�FŠ?Ü˜vÓ&Ð&Øˆr.   )r  rð  r  r(  rô  TrÞ  rà  r  rÅ  rê  )rû   rü   rc   r)  rÏ  rá  râ  rã  r×   rÈ  r  r  rà   r÷  rï  r  s	            r,   Ú3test_parallel_worker_exception_falls_back_to_serialr  ¿  s  € ð ˜3Ÿ8™8Ñ#SÄuÈTÃ{Ô#SÓSÑ
S€CØ�jÑ €DØ×Ñ�SÔòô
 &)°$Ñ7À6È7ÐBSÑT€FÜ˜{Ó+€HÜ	×	 Ñ	 ¨Ô	-ð ?°Ü×Ñ˜hÔ'Ü�]‰]œ<¨vÔ6ñ 	?Ü! $¨Ñ>°vÒ>÷	?÷?ð
 ˜
�|Ò#Ð#Ð#Ø08Ö9 WŒC�—‘Õ Ò9Ü  Ó(ð>ò ð ñ ÷		?ð 	?ú÷?ð ?üò :s*   Á-1DÂC7Â,DÃDÃ7D 	Ã<DÄDc                ó&  — t        d«      D �cg c]	  }|› d|› �‘Œ }}d|d<   ddj                  |«      z   dz   j                  «       }| dz  }|j                  |«       t	        j
                  t        d¬	«      5 }t        j                  t        j                  |«      d
di¬«       d d d «       t	        j
                  t        t        j                  «      ¬	«      5  t        ||d
di¬«       d d d «       y c c}w # 1 sw Y   ŒVxY w# 1 sw Y   y xY w)Nr©  rõ   zx,3000rs  rñ   r~   r�  zposition 3000rÅ  r¦   ÚInt64r¬  )rü   rû   r¥  rc   r×   rÈ  rÉ  r#   r/  r¸  r¹  rà   re  r  )rK   rL   rø   rV  r  r(   rf  s          r,   Ú*test_parallel_bad_value_raises_like_serialr  Ø  sð   € ô !& d£Ö,˜1ˆqˆc��1�#ŠJÐ,€DÐ,Ø€Dˆ�JØ�T—Y‘Y˜t“_Ñ$ tÑ+×
3Ñ
3Ó
5€CØ�iÑ€DØ×Ñ�SÔä	�‰”z¨Ô	9ð ;¸XÜ
�‰”B—J‘J˜s“O¨C°¨>Õ:÷;ä	�‰”z¬¨X¯^©^Ó)<Ô	=ñ GÜ˜d K¸¸W°~ÕF÷Gð Gùò -÷;ð ;ú÷Gð Gús   ŽC6Á9-C;ÃDÃ;DÄDc                óª  ‡— ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       g Š G ˆfd„dt        j                  «      }|j	                  t        d|«       d	„ }t        j                  t        d
¬«      5  t        ||d|i¬«       d d d «       t        ‰«      dk(  sJ ‚‰d   j                  sJ ‚y # 1 sw Y   Œ+xY w)Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   z>test_parallel_chunk_failure_unmaps_the_file.<locals>.<genexpr>ì  rÿ  r"  rq   r   c                  ó   •— e Zd Zdˆ fd„Zy)úAtest_parallel_chunk_failure_unmaps_the_file.<locals>.TrackingMmapc                ó(   •— ‰j                  | «       y r  r�  )r@   rˆ  r0  Úmappeds      €r,   Ú__init__zJtest_parallel_chunk_failure_unmaps_the_file.<locals>.TrackingMmap.__init__ó  s   ø€ Ø�M‰M˜$Õr.   N©r*  r+  )rÓ   rÔ   rÕ   r  )r  s   €r,   ÚTrackingMmapr  ò  s   ø„ ö	 r.   r  Úmmapc                ó&   — | dk(  rt        d«      ‚| S r  r  r  s    r,   r  z9test_parallel_chunk_failure_unmaps_the_file.<locals>.boomø  r  r.   r  rÅ  rð  )r<  rG   r   )rû   rü   rc   r  rH   r×   rÈ  r  r  rá   Úclosed)rK   rL   r  r(   r  r  r  s         @r,   Ú+test_parallel_chunk_failure_unmaps_the_filer  ç  sÈ   ø€ ð
 ˜3Ÿ8™8Ñ#SÄuÈTÃ{Ô#SÓSÑ
S€CØ�jÑ €DØ×Ñ�SÔà €Fö ”t—y‘yô  ð ×Ñœ˜f lÔ3òô
 
�‰”|¨6Ô	2ñ LÜ˜d K¸VÀT¸NÕK÷Lô ˆv‹;˜!ÒÐÐØ�!‰9×ÒÐÑ÷	Lð Lús   ÂC	Ã	Cz4WASM stays serial, so there is no attempt to declinec                ó"  — ddj                  d„ t        d«      D «       «      z   dj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       dt        idd	id
œ}t	        |«      }t        t        ||fi |¤Ž\  }}t        t        j                  t        j                  |«      fi |¤Ž\  }}	|dgk(  sJ ‚t        j                  ||«       |D �
cg c]  }
t        |
j                  «      ‘Œ c}
t        d«      gk(  sJ ‚y c c}
w )Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   zItest_parallel_fallback_does_not_repeat_c_layer_warning.<locals>.<genexpr>  s*   è ø€ ÒA°�a�S˜˜!˜a™%˜ Ð#×*Ñ*×,ÑAùr"  i¶  c              3  óH   K  — | ]  }|› d |› d�j                  «       –— Œ y­wr  r¤  rö   s     r,   rù   zItest_parallel_fallback_does_not_repeat_c_layer_warning.<locals>.<genexpr>  s%   è ø€ Ò=¨a�a�S˜˜1˜#˜R�=×'Ñ'×)Ñ=ùr  é2   zfallback.csvr  r(  rô  rê  )rû   rü   rc   r)  rÏ  ræ  r  r#   r/  r¸  r¹  ra  rb  rà   r÷  rï  )rK   rL   r  r(   r0  rÐ  r5  rå  rf  rØ  rû  s              r,   Ú6test_parallel_fallback_does_not_repeat_c_layer_warningr$    s  € ð 	Ø
�(‰(ÑA´e¸C³jÔAÓ
Añ	Bð �(‰(Ñ=´5¸³9Ô=Ó
=ñ		>ð ð �nÑ$€DØ×Ñ�SÔØ#¤S˜M°V¸WÐ4EÑF€FÜ˜{Ó+€Hä%Ü˜t [ñØ4:ñÑ€FˆHô !¤§¡¬b¯j©j¸«oÑHÀÑH�K€HˆaØ˜
�|Ò#Ð#Ð#Ü×Ñ˜& (Ô+Ø08Ö9 WŒC�—‘Õ Ò9Ü  Ó(ð>ò ð ñ ùÒ9s   ÃDz6WASM stays serial, so there is no attempt to fall backc                ó¶  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        |«      }t	        t
        ||d¬«      \  }}t	        t        j                  t        j                  |«      d¬«      \  }}|dgk(  sJ ‚t        j                  ||«       |D �	cg c]  }	t        |	j                  «      ‘Œ c}	d	gk(  sJ ‚y c c}	w )
Nr  r.   c              3  óZ   K  — | ]#  }|› d |dz  › d |dz  › d�j                  «       –— Œ% y­w)rõ   rÄ   rv  r~   Nr¤  rö   s     r,   rù   zNtest_parallel_fallback_does_not_repeat_python_layer_warning.<locals>.<genexpr>)  s9   è ø€ ò $Ø./ˆ1ˆ#ˆQˆq�1‰uˆg�Q�q˜1‘u�g˜RÐ ×'Ñ'×)ñ$ùs   ‚)+r’  zmismatch.csvFrÊ   rê  zkLength of header or names does not match length of data. This leads to a loss of data with index_col=False.)rû   rü   rc   rÏ  ræ  r  r#   r/  r¸  r¹  ra  rb  rà   r÷  )
rK   rL   r  r(   rÐ  r5  rå  rf  rØ  rû  s
             r,   Ú;test_parallel_fallback_does_not_repeat_python_layer_warningr'  !  sÙ   € ð ˜3Ÿ8™8ñ $Ü38¸³:ô$ó ñ €Cð �nÑ$€DØ×Ñ�SÔÜ˜{Ó+€Hä%Ü˜t [¸EôÑ€FˆHô !¤§¡¬b¯j©j¸«oÈÔO�K€HˆaØ˜
�|Ò#Ð#Ð#Ü×Ñ˜& (Ô+Ø08Ö9 WŒC�—‘Õ Ò9ð	2ð>ò ð ñ ùÒ9s   Â0Cr”   r“   rS  r’   c                óÚ  — ddj                  d„ t        d«      D «       «      z   }| dz  }|j                  |«       t        |«      }t	        t
        ||fi |¤Ž\  }}t	        t        j                  t        j                  |«      fi |¤Ž\  }}	|g k(  sJ ‚t        j                  ||«       t        |«      dk(  sJ ‚|d   j                  t        u sJ ‚dt        |d   j                   «      v sJ ‚y )	Nr  r.   c              3  óN   K  — | ]  }|› d |dz  › d�j                  «       –— Œ y­wrš  r¤  rö   s     r,   rù   z=test_multibyte_sep_or_quotechar_warns_once.<locals>.<genexpr>C  ró  r"  r’  zmultibyte.csvrG   r   r¥  )rû   rü   rc   rÏ  ræ  r  r#   r/  r¸  r¹  ra  rb  rá   rø  r	   rà   r÷  )
rK   rL   r0  r  r(   rÐ  r5  rå  rf  rØ  s
             r,   Ú*test_multibyte_sep_or_quotechar_warns_oncer*  =  sç   € ð ˜3Ÿ8™8Ñ#RÄuÈSÃzÔ#RÓRÑ
R€CØ�oÑ%€DØ×Ñ�SÔÜ˜{Ó+€Hä%Ü˜t [ñØ4:ñÑ€FˆHô !¤§¡¬b¯j©j¸«oÑHÀÑH�K€HˆaØ�rŠ>Ðˆ>Ü×Ñ˜& (Ô+Üˆx‹=˜AÒÐÐØ�A‰;×Ñ¤=Ñ0Ð0Ð0Ø0´C¸À¹×8KÑ8KÓ4LÑLÐLÑLr.   ÚbigÚ9223372036854775807Ú18446744073709551616z/WASM stays serial, so the chunks never disagreec                óT  — t        j                  d«       d|› d�j                  «       dz  z   dz   }| dz  }|j                  |«       t	        |«      }t        ||d¬«      }t        j                  t        j                  |«      d¬«      }|dgk(  sJ ‚t        j                  ||«       y )	Nrx   ó   col1
r~   r’  s   1.5
zhuge_int.csvrS  rê  )r×   rT  r¥  rc   rÏ  r  r#   r/  r¸  r¹  ra  rb  )rK   rL   r+  r  r(   rÐ  r5  rf  s           r,   Ú3test_parallel_pyarrow_huge_int_chunk_matches_serialr0  V  s�   € ô ×Ñ˜	Ô"Ø
˜˜˜R�j×'Ñ'Ó)¨CÑ/Ñ
/°(Ñ
:€CØ�nÑ$€DØ×Ñ�SÔÜ˜{Ó+€Hä" 4¨ÀIÔN€Fä�{‰{œ2Ÿ:™: c›?¸)ÔD€HØ˜
�|Ò#Ð#Ð#Ü×Ñ˜& (Õ+r.   z.WASM stays serial, so nothing infers per chunkc                ó,  — t        j                  d«       dddz  z   }| dz  }|j                  |«       t        |«      }t	        ||d¬«      }t        j                  t        j                  |«      d¬«      }|dgk(  sJ ‚t        j                  ||«       y )Nrx   r/  s   9223372036854775807
r’  zhuge_int_only.csvrS  rÎ  )r×   rT  rc   rÏ  r  r#   r/  r¸  r¹  ra  rb  )rK   rL   r  r(   rÐ  r5  rf  s          r,   Ú4test_parallel_pyarrow_huge_int_column_stays_parallelr2  k  s‹   € ô
 ×Ñ˜	Ô"Ø
Ð.°Ñ4Ñ
4€CØÐ)Ñ)€DØ×Ñ�SÔÜ˜{Ó+€Hä" 4¨ÀIÔN€Fä�{‰{œ2Ÿ:™: c›?¸)ÔD€HØ˜�xÒÐÐÜ×Ñ˜& (Õ+r.   z.WASM stays serial, so no sample line is parsedc                ó:  — t        j                  d«       ddj                  d„ t        d«      D «       «      z   }| dz  }|j	                  |«       t        ||d¬«      }t        j                  |t        j                  t        j                  |«      d¬«      «       y )Nrx   s   col1
18446744073709551616
r.   c              3  óB   K  — | ]  }|› d �j                  «       –— Œ y­w)z.5
Nr¤  rö   s     r,   rù   zCtest_parallel_huge_int_first_line_matches_serial.<locals>.<genexpr>ƒ  s$   è ø€ ò 5Ø !ˆ1ˆ#ˆTˆ
×Ñ×ñ5ùs   ‚r’  zhuge_first.csvrS  )r×   rT  rû   rü   rc   r  ra  rb  r#   r/  r¸  r¹  )rK   rL   r  r(   r5  s        r,   Ú0test_parallel_huge_int_first_line_matches_serialr5  }  s„   € ô
 ×Ñ˜	Ô"Ø
)¨C¯H©Hñ 5Ü%*¨3£Zô5ó -ñ €Cð Ð&Ñ&€DØ×Ñ�SÔä" 4¨ÀIÔN€Fä×Ñ˜&¤"§+¡+¬b¯j©j¸«oÈYÔ"WÕXr.   r	  )r4  Úmin_chunk_rowsc               ó†  ‡‡— g Št         j                  Šˆˆfd„}|j                  t         d|«       |j                  t         dd«       |j                  t         d|«       |�|j                  t         d|«       t        j                  d|«      5  t        j
                  | fi |¤Ž ddd«       ‰r‰d	   S d	S # 1 sw Y   ŒxY w)
a`  Return the chunk count ``read_csv`` actually plans for *path*.

    Reads the split the planner produces rather than recomputing it, so a test
    cannot agree with a rule the code no longer follows.  *chunk_bytes* and
    *min_chunk_rows* stand in for the module constants so a test-sized fixture
    can still exercise the one bound it is about.
    c                óX   •—  ‰| ||g|¢­Ž }‰j                  t        |«      dz
  «       |S r  )r…  rá   )r†  r‡  r  rˆ  r  rì  r¹  s        €€r,   rŠ  z!_planned_chunk_count.<locals>.spy   s0   ø€ Ù˜8 X¨zÐA¸DÒAˆØ�‰”C˜“L 1Ñ$Ô%Øˆr.   r   rF   rG   Ú_PARALLEL_CHUNK_BYTESNÚ_PARALLEL_MIN_CHUNK_ROWSrÀ  r   )rI   r   rH   r#   rÁ  r/  )	r(   rL   Úchunk_bytesr4  r6  r0  rŠ  rì  r¹  s	          @@r,   Ú_planned_chunk_countr<  “  s¶   ù€ ð €DÜ×0Ñ0€Hõð
 ×ÑœÐ"<¸cÔBØ×ÑœÐ"<¸aÔ@Ø×ÑœÐ"9¸;ÔGØÐ!Ø×ÑœHÐ&@À.ÔQÜ	×	Ñ	Ð-¨yÓ	9ñ $Ü
�‰�DÑ#˜FÒ#÷$áˆ4�‰7Ð! Ð!÷$ð $ús   ÂB7Â7C c                óä   ‡— dj                  d„ t        |«      D «       «      }dj                  ˆfd„t        |«      D «       «      }| j                  |dz   |› d�|z  z   j                  «       «       y )Nrõ   c              3  ó&   K  — | ]	  }d |› �–— Œ y­wr�  r¾   rö   s     r,   rù   z_write_grid.<locals>.<genexpr>°  s   è ø€ Ò5 !˜˜!˜”gÑ5ùr‘  c              3  ó"   •K  — | ]  }‰–— Œ y ­wr  r¾   )r÷   rØ  Úfields     €r,   rù   z_write_grid.<locals>.<genexpr>±  s   øè ø€ Ò0˜Q”5Ñ0ùs   ƒr~   )rû   rü   rc   r¥  )r(   r)   Ún_colsr@  r:   r•  s      `  r,   Ú_write_gridrB  ¯  s`   ø€ Ø�X‰XÑ5¤u¨V£}Ô5Ó5€FØ
�(‰(Ó0¤%¨£-Ô0Ó
0€Cð 	×Ñ�f˜t‘m¨¨¨R j°6Ñ&9Ñ9×AÑAÓCÕDr.   c                óT  — | dz  }| dz  }t        |ddd¬«       t        |ddd¬«       |j                  «       j                  d|j                  «       j                  z  kD  sJ ‚t        ||dd	¬
«      t        ||dd	¬
«      k(  sJ ‚t        ||dd	¬
«      }t        ||dd	¬
«      }||kD  sJ ‚y )Nzlean.csvzfat.csvr‚  r	  Ú7©r@  Ú
7777777777ì            rG   ©r;  r6  é   )rB  ÚstatÚst_sizer<  )rK   rL   ÚleanÚfatÚlean_nÚfat_ns         r,   Ú+test_parallel_chunk_count_follows_file_sizerP  ·  sÃ   € ð
 �jÑ €DØ
�YÑ
€CÜ��f˜a sÕ+Ü��V˜Q lÕ3Ø�8‰8‹:×Ñ  D§I¡I£K×$7Ñ$7Ñ 7Ò7Ð7Ð7ô  Øˆk w¸qôä	˜c ;¸GÐTUÔ	VòWð Wð Wô " $¨ÀÐVWÔX€FÜ   k¸tÐTUÔV€Eà�6Š>Ð‰>r.   c                óv   — | dz  }t        |dd«       t        d«      D ]  }t        ||ddd¬«      }|dk\  rŒJ ‚ y )	NrO   r  rG   r$  rï  r  ©r;  r4  r6  rq   )rB  rü   r<  )rK   rL   r(   rØ  r‡  s        r,   Ú)test_parallel_read_many_chunks_per_workerrS  Í  sR   € ð
 �jÑ €DÜ��f˜aÔ Ü�2‹Yò  ˆÜ'Ø�+¨2¸È1ô
ˆð ˜4ÓÐÐñ	 r.   c                óH  — | dz  }| dz  }t        |dd«       t        |dd«       t        ||dd¬	«      }t        ||dd¬	«      }||k  sJ ‚|j                  «       j                  |j                  «       j                  kD  sJ ‚t        j
                  dz  }|| dz   dz  k(  sJ ‚y )
Nz
narrow.csvrŽ  iÐû r	  i´  rt   rI  rG   rH  )rB  r<  rJ  rK  rI   Ú_PARALLEL_MAX_COLUMN_PIECES)rK   rL   ÚnarrowÚwideÚnarrow_nÚwide_nÚbudgets          r,   Ú2test_parallel_chunk_count_bounded_by_column_piecesr[  Û  s·   € ð ˜Ñ$€FØ�jÑ €DÜ�˜ Ô#Ü��e˜SÔ!ä#Ø�¨¸aô€Hô " $¨ÀÐVWÔX€Fà�HÒÐÐð �9‰9‹;×Ñ §¡£×!6Ñ!6Ò6Ð6Ð6ä×1Ñ1°SÑ8€FØ˜�w !‘|�_ qÑ(Ò(Ð(Ñ(r.   c                ó`  — | dz  }t        |dd«       t        t        |«      dd¬«      }t        t        |«      d|d¬«      }t	        j
                  |«      D ��cg c]
  \  }}||z
  ‘Œ }}}|d   |d   d	z  k  sJ ‚t        |d
d  «      t        |d d «      k  sJ ‚|d   |k(  sJ ‚|d   |j                  «       j                  k(  sJ ‚t        t        |«      d|«      }t	        j
                  |«      D ��cg c]
  \  }}||z
  ‘Œ }}}t        |«      t        |«      dz  k  sJ ‚y c c}}w c c}}w )Núgrid.csvr  r	  r   rÞ   rï  r­  r  rÄ   iøÿÿÿr  çÍÌÌÌÌÌð?)rB  r   rà   r   Ú	itertoolsÚpairwiseru  rJ  rK  ÚmaxÚmin)	rK   r(   r  r  ÚstartÚendÚsizesÚequalÚequal_sizess	            r,   Ú;test_parallel_chunk_sizes_taper_towards_the_end_of_the_filerh  ò  s5  € ð �jÑ €DÜ��f˜aÔ Ü(¬¨T«¸1ÀqÔI€Jä&¤s¨4£y°"°jÈAÔN€GÜ+4×+=Ñ+=¸gÓ+F×G™Z˜U CˆS�5‹[ÐG€EÑGà�‰9�u˜Q‘x !‘|Ò#Ð#Ð#Üˆu�R�Sˆz‹?œS  r¨ ›^Ò+Ð+Ð+à�1‰:˜Ò#Ð#Ð#Ø�2‰;˜$Ÿ)™)›+×-Ñ-Ò-Ð-Ð-ô %¤S¨£Y°°JÓ?€EÜ1:×1CÑ1CÀEÓ1J×K¡: 5¨#�3˜“;ÐK€KÑKÜˆ{Óœc +Ó.°Ñ5Ò5Ð5Ñ5ùó Hùó Ls   ÁD$Ã5D*r‡  c                ó  — | dz  }t        |dd«       t        t        |«      dd¬«      }t        t        |«      ||d¬«      }t	        j
                  |«      D ��cg c]
  \  }}||z
  ‘Œ }}}t        |«      t        |«      dz  k  sJ ‚y c c}}w )Nr]  r  r	  r   rÞ   r­  r^  )rB  r   rà   r   r_  r`  ra  rb  )rK   r‡  r(   r  r  rc  rd  re  s           r,   Ú7test_parallel_chunk_sizes_do_not_taper_within_one_roundrj  
  sˆ   € ð �jÑ €DÜ��f˜aÔ Ü(¬¨T«¸1ÀqÔI€Jä&¤s¨4£y°(¸JÐRSÔT€GÜ+4×+=Ñ+=¸gÓ+F×G™Z˜U CˆS�5‹[ÐG€EÑGäˆu‹:œ˜E›
 TÑ)Ò)Ð)Ñ)ùó Hs   ÁB	r4  )r	  rì   rô  rÅ  c                óp   — | dz  }t        |dd«       t        ||d|d¬«      }||z  dk(  sJ ‚||dz  kD  sJ ‚y )	Nr]  r‚  r	  rI  rG   rR  r   rv  ©rB  r<  )rK   rL   r4  r(   r‡  s        r,   Ú5test_parallel_chunk_count_is_a_whole_number_of_roundsrm    sY   € ð �jÑ €DÜ��f˜aÔ ä#Øˆk t°yÐQRô€Hð �iÑ 1Ò$Ð$Ð$ð �i !‘mÒ#Ð#Ñ#r.   rA  é   r¬  c                óŠ   — | dz  }t        |d|«       t        ||d|d¬«      }t        ||d|d¬«      }||dz  k(  sJ ‚||kD  sJ ‚y )Nr]  r‚  rG  rG   rR  rI  rv  rl  )rK   rL   rA  r4  r(   ÚwithoutÚ	with_terms          r,   Ú5test_parallel_chunk_count_never_below_the_worker_rulerr  -  sj   € ð �jÑ €DÜ��f˜fÔ%ä"Øˆk w¸)ÐTUô€Gô %Øˆk t°yÐQRô€Ið �i !‘mÒ#Ð#Ð#à�wÒÐÑr.   c                ó  — | dz  }t        |dd«       |j                  «       j                  t        j                  k  sJ ‚t        ||dd¬«      }t        ||t        j                  d¬«      }||k(  sJ ‚t        ||dd¬«      |kD  sJ ‚y )Nzsmallish.csvr©  r	  rG  rG   rH  i   )rB  rJ  rK  rI   r9  r<  )rK   rL   Úsmallrp  rq  s        r,   Ú8test_parallel_chunk_count_unchanged_below_the_block_sizeru  E  sž   € ð �~Ñ%€EÜ��u˜aÔ Ø�:‰:‹<×Ñ¤(×"@Ñ"@Ò@Ð@Ð@ä"Øˆ{¨Àô€Gô %ØØÜ×2Ñ2Øô	€Ið ˜ÒÐÐô
 	˜U K¸SÐQRÔSØ
ò	ðñ	r.   c                ó¼   — | dz  }t        |ddd¬«       t        ||d¬«      }t        ||d¬«      }||k(  sJ ‚|j                  «       j                  dz  d|z  kD  sJ ‚y )	Nzrow_poor.csvrŽ  r   ÚÈxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrE  rG  )r;  rI  )rB  r<  rJ  rK  )rK   rL   r(   rp  rq  s        r,   Ú0test_parallel_chunk_count_respects_the_row_floorrx  `  si   € ð �nÑ$€DÜ��c˜2 YÕ/ä" 4¨À'ÔJ€GÜ$ T¨;ÀDÔI€Ià˜ÒÐÐà�9‰9‹;×Ñ $Ñ&¨¨i©Ò7Ð7Ñ7r.   c           
     ó,  — t         j                  j                  d«      }t        d«      D �ci c]  }d|› �|j	                  dd| ¬«      “Œ }}|j                  t        d«      D �ci c]  }d|› �|j                  | «      “Œ c}«       |j                  t        d«      D �ci c]  }d|› �|j                  g d	¢| ¬«      “Œ c}«       |j	                  dd
| ¬«      j                  t        «      |d<   t        j                  |«      S c c}w c c}w c c}w )Nr   rô  rø   iüÿÿrq   r   rZ   r/  )Úid1Úid22Úid333rÄ   Úb0)r    r!   r"   rü   r%   r?   r&   ÚastypeÚboolr#   r$   )r)   r*   ÚkÚdatas       r,   Ú_blocked_framer‚  t  sû   € ô �)‰)×
Ñ
 Ó
"€CäAFÀqÃöØ<=ˆ!ˆAˆ3ˆ�—‘˜e T°�Ó7Ñ7ð€Dð ð 	‡K�K´e¸A³hÖ?°�1�Q�C�˜#Ÿ*™* VÓ,Ñ,Ò?Ô@Ø‡K�KÜMRÐSTËXÖVÈˆ1ˆQˆCˆ�#—*‘*Ò5¸F�*ÓCÑ	CÒVôð —‘˜a ¨�Ó0×7Ñ7¼Ó=€Dˆ�JÜ�<‰<˜ÓÐùòùò @ùâVs   ­DÁ&DÂ! DÚthreadsrô  c                óz  — | dz  }t        «       j                  |d¬«       |j                  t        dd«       |j                  t        dd«       t        j                  d|«      5  t        j                  |«      }d d d «       t        j                  |d	¬
«      }t        j                  |«       y # 1 sw Y   Œ7xY w)Nzblocked.csvFr   rF   rG   Ú_BLOCK_BYTESé   rÀ  rw   rT   )
r‚  r'   rH   rI   Ú_parsersr#   rÁ  r/  ra  rb  )rK   rL   rƒ  r(   r5  rf  s         r,   Ú1test_row_blocked_conversion_matches_python_enginerˆ  ƒ  s›   € à�mÑ#€DÜÓ×Ñ˜D¨ÐÔ.Ø×ÑœÐ"<¸aÔ@à×Ñœ .°$Ô7ä	×	Ñ	Ð-¨wÓ	7ñ #Ü—‘˜TÓ"ˆ÷#ä�{‰{˜4¨Ô1€HÜ×Ñ˜& (Õ+÷#ð #ús   Á%B1Â1B:c                ó,  — t        «       j                  t        «      }d|d<   d|d<   | dz  }|j                  |d¬«       |j	                  t
        dd	«       |j	                  t        d
d«       t        j                  d|«      5  t        j                  |«      }d d d «       t        j                  |d¬«      }t        j                  |«       |d   j                  t        j                  k(  sJ ‚|d   j                  t        k(  sJ ‚y # 1 sw Y   ŒqxY w)Nl   ÿÿÿÿ Úu0l      HK3@f-}V
Úo0zoverflow.csvFr   rF   rG   r…  r†  rÀ  rw   rT   )r‚  r~  Úobjectr'   rH   rI   r‡  r#   rÁ  r/  ra  rb  r;  r    Úuint64©rK   rL   rƒ  r+   r(   r5  rf  s          r,   Ú,test_row_blocked_conversion_leading_overflowr�  ‘  sð   € ô 
Ó	×	 Ñ	 ¤Ó	(€BØ€B€t�HØ€B€t�HØ�nÑ$€DØ‡I�Iˆd˜%€IÔ Ø×ÑœÐ"<¸aÔ@Ø×Ñœ .°$Ô7ä	×	Ñ	Ð-¨wÓ	7ñ #Ü—‘˜TÓ"ˆ÷#ä�{‰{˜4¨Ô1€HÜ×Ñ˜& (Ô+Ø�$‰<×Ñ¤§¡Ò*Ð*Ð*Ø�$‰<×Ñ¤Ò'Ð'Ñ'÷#ð #ús   ÂD
Ä
Dc                óX  — t        j                  d«       t        d¬«      }dgt        |«      z  |d<   | dz  }|j	                  |d¬«       |j                  t        d	d
«       |j                  t        dd«       t        j                  d|«      5  t        j                  |d¬«      }d d d «       |j                  t        dd«       t        j                  d|«      5  t        j                  |d¬«      }d d d «       t        j                  «       y # 1 sw Y   ŒmxY w# 1 sw Y   Œ,xY w)Nrx   i@  r  Á�  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr+  zoffsets.csvFr   rF   rG   r…  r†  rÀ  rS  Ú_STR_OFFSET_LIMITi   )r×   rT  r‚  rá   r'   rH   rI   r‡  r#   rÁ  r/  ra  rb  )rK   rL   rƒ  r+   r(   rf  r5  s          r,   Ú2test_row_blocked_conversion_string_offset_overflowr“  ¥  s   € ô ×Ñ˜	Ô"Ü	˜uÔ	%€BØ�œc "›gÑ%€B€u�IØ�mÑ#€DØ‡I�Iˆd˜%€IÔ Ø×ÑœÐ"<¸aÔ@Ø×Ñœ .°$Ô7ô 
×	Ñ	Ð-¨wÓ	7ñ >Ü—;‘;˜t°9Ô=ˆ÷>à×ÑœÐ"5°wÔ?Ü	×	Ñ	Ð-¨wÓ	7ñ <Ü—‘˜T°Ô;ˆ÷<ä×Ñ˜& (Õ+÷>ð >ú÷<ð <ús   ÂDÃD ÄDÄ D)c                ót  — t        «       j                  t        «      }d|j                  d<   d|j                  d<   d|j                  d<   d|j                  d<   d	|j                  d
<   t        j
                  |j                  d<   | dz  }|j                  |d¬«       |j                  t        dd«       |j                  t        dd«       t        j                  d|«      5  t        j                  |«      }d d d «       t        j                  |d¬«      }t        j                  |«       y # 1 sw Y   Œ7xY w)Ng      ø?)é¨a  Úi0l           )r•  Úi1Úabc)r•  Úi2Úoops)r•  Úf0u   hÃ©llo)r•  Ús0)ib  Úi3zlate.csvFr   rF   rG   r…  r†  rÀ  rw   rT   )r‚  r~  rŒ  r  r    rp  r'   rH   rI   r‡  r#   rÁ  r/  ra  rb  rŽ  s          r,   Ú+test_row_blocked_conversion_late_dtype_missrž  ½  s  € ô 
Ó	×	 Ñ	 ¤Ó	(€BØ€B‡F�Fˆ<ÑØ$€B‡F�Fˆ<ÑØ €B‡F�Fˆ<ÑØ!€B‡F�Fˆ<ÑØ'€B‡F�Fˆ<ÑÜŸ6™6€B‡F�Fˆ<ÑØ�jÑ €DØ‡I�Iˆd˜%€IÔ Ø×ÑœÐ"<¸aÔ@Ø×Ñœ .°$Ô7ä	×	Ñ	Ð-¨wÓ	7ñ #Ü—‘˜TÓ"ˆ÷#ä�{‰{˜4¨Ô1€HÜ×Ñ˜& (Õ+÷#ð #ús   Ã"D.Ä.D7)r   r(  )r±  Úbytesr*  r)  )r*  r˜  )r¹  r˜  r²  r)  r*  r+  )r*  z	list[str])rl  rà   r*  rà   )r*  r)  )rD  r  )r‚  )r)   r)  r*  zpd.DataFrame)€rÖ   Ú
__future__r   r�  r¸  r_  r  r  Útypingr   rá  Únumpyr    r×   rU  r   r‡  Úpandas.compatr   Úpandas.errorsr   r   r	   Úpathlibr
   Úpandasr#   Úpandas._testingÚ_testingra  Úpandas.io.parsersr   rI   Úpandas.io.parsers.base_parserr   rV  r   r   r   r   r   r-   r0   rÜ   rï   rØ   Úslowr-  rÙ   Úparamr¾  rÃ  rË  ÚskipifrÑ  ræ  rì  rö  rø  r  r  r  r$  r)  r,  r7  r<  r@  rC  rJ  rO  rW  Úfilterwarningsrl  rq  rÚ   rw  r~  r„  r‡  rŠ  r“  r™  r¢  r§  rµ  rº  r¼  rÀ  rÃ  r)  rÆ  rÈ  rË  rÏ  rÔ  rÚ  rÜ  ræ  rÏ  rï  rü  r  r  r  r  r$  r'  r*  r0  r2  r5  r<  rB  rP  rS  r[  rh  rj  rm  rr  ru  rx  r‚  rˆ  r�  r“  rž  r¾   r.   r,   ú<module>r¯     s	  ðñ
õ #ã 
Û 	Û Û Û 	Ý  Û ã Û å ,Ý ÷ñ ñ Ýã Ý å 1Ý 4÷õ ô
!÷$z<ñ z<÷D 1ñ  1÷P;Qñ ;QðF ‡�×Ñ÷vBð vBó ðvBð| ‡�×ÑØð 	ˆ�‰Ø6ØØ(ô	
ð 	ˆ�‰Ø;ØØ<ô	
ð 	ˆ�‰ØKØØ+ô	
ðóñ0ó1ð0ò6,ò&
2ð ‡�×Ñ�DÐ!MÐÓNñ ó Oð ð& ‡�×Ñ˜Ò*FÓGñó Hðò6ò*÷F/-ñ /-òp+ò0ò7ò*6ò ,ò	,ð ‡�×ÑØà	/°Ð4Ø	% rÐ*Ø	+¨j¸!¨_Ð=Ø	$°1ÀÑ&EÐFð	óñ?óð?ð ‡�×ÑØòóñ$óð$ð$ ‡�×Ñ�DÐ!MÐÓNñEó OðEò0	,ð ‡�×Ñ�DÐ!QÐÓRñ ó Sð ò@(ò",ð$ ‡�×ÑØJóñ(0óð(0òV,ð" ‡�×Ñ˜¨¨q°"·)±)Ð'<Ó=ñ.ó >ð.ð* ‡�×ÑØà
Ø	�y�kÐ"Ø	�u˜y˜kÐ*Ð+Ø	Ð*Ð+ð	óñ,óð,ð$ ‡�×Ñ�DÐ!MÐÓNñ,ó Oð,ò0ò	Qò,ò&6ò 2ò4,ó ó<óPð ‡�×Ñ�DÐ!MÐÓNñ
,ó Oð
,ð ‡�×Ñ�DÐ!MÐÓNñ ó Oð ð" ‡�×Ñ�DÐ!MÐÓNØ‡�×ÑØ�˜#˜w˜Ð(¨<¸#¸s¸Ð*DÐEóñ,óó Oð,ð6 ‡�×Ñ�DÐ!MÐÓNñ ó Oð ò"$ò,ò",ò$,ò(-òóó$ð ‡�×Ñ˜ F 8¨f°fÐ-=Ð">Ó?Ø‡�×Ñ�DÐ!UÐÓVñ,ó Wó @ð,ð6 ‡�×Ñ�DÐ!NÐÓOñó Pðð4 ‡�×Ñ�DÐ!IÐÓJñó Kðò0Gð ‡�×Ñ�DÐ!IÐÓJñó Kðð8 ‡�×Ñ�DÐ!WÐÓXñó Yðð8 ‡�×ÑØÐIð ó ñóðð2 ‡�×Ñ˜ [°$Ð$7¸%À¸Ð#GÓHñMó IðMð0 ‡�×Ñ˜Ð!6Ð8NÐ OÓPØ‡�×Ñ�DÐ!RÐÓSñ,ó Tó Qð,ð& ‡�×Ñ�DÐ!QÐÓRñ,ó Sð,ð" ‡�×Ñ�DÐ!QÐÓRñYó SðYð, 23À4ñ"àó"ô8Eð ‡�×Ñ�DÐ!QÐÓRñó Sðð* ‡�×Ñ�DÐ!QÐÓRñ
 ó Sð
 ð ‡�×Ñ�DÐ!QÐÓRñ)ó Sð)ò,6ð0 ‡�×Ñ˜ a¨ VÓ,ñ
*ó -ð
*ð ‡�×Ñ�DÐ!QÐÓRØ‡�×Ñ˜¢lÓ3ñ$ó 4ó Sð$ð& ‡�×Ñ�DÐ!QÐÓRØ‡�×Ñ˜ A r 7Ó+Ø‡�×Ñ˜ q¨" gÓ.ñó /ó ,ó Sðð* ‡�×Ñ�DÐ!QÐÓRñó Sðð4 ‡�×Ñ�DÐ!QÐÓRñ8ó Sð8ô&ð ‡�×Ñ˜ Q¨ FÓ+ñ
,ó ,ð
,ð ‡�×Ñ˜ Q¨ FÓ+ñ(ó ,ð(ð& ‡�×Ñ˜ Q¨ FÓ+ñ,ó ,ð,ð. ‡�×Ñ˜ Q¨ FÓ+ñ,ó ,ñ,r.   