Ë
    ž…jèÅ  ã                   ó  — d Z ddlZddlm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mZ ddlmZ ddlmZmZmZmZ ddl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l!Z!d
Z"	 ddl$Z$d
Z%e
jL                  jO                  d«      e
jL                  jO                  d«      gZ( e
jR                   e
jT                  de
jL                  jW                  e% d¬«      e
jL                  jY                   e«       dd¬«      g¬«       e
jT                  de
jL                  jW                  e" d¬«      ¬«      g¬«      d„ «       Z-e
jR                  d„ «       Z.e
jR                  d„ «       Z/e
jR                  d„ «       Z0e
jR                  d„ «       Z1e
jR                  d„ «       Z2 e
jR                  ej                  jg                  ejh                  «      ej                  jg                  ejj                  jl                  «      ej                  jg                  ejj                  jn                  «      ej                  jq                  dd«      ej                  jq                  dd«      ej                  jq                  d d«      ej                  jq                  d!d«      g¬«      d"„ «       Z9	 	 	 	 	 	 	 	 	 d5d#„Z:d$„ Z;d%„ Z<d&„ Z=d'„ Z>d(„ Z?d)„ Z@d*„ ZAd+„ ZBd,„ ZC G d-„ d.«      ZD G d/„ d0eD«      ZE G d1„ d2eD«      ZF G d3„ d4eD«      ZGy# e#$ r dZ"Y �Œ”w xY w# e#$ r dZ%Y �Œ›w xY w)6ztest parquet compaté    N)ÚDecimal)ÚBytesIO)Úusing_string_dtype)Úis_platform_windows)Úpa_version_under15p0Úpa_version_under17p0Úpa_version_under19p0Úpa_version_under20p0)ÚVersion)ÚFastParquetImplÚPyArrowImplÚ
get_engineÚread_parquetÚ
to_parquetTFz2ignore:DataFrame._data is deprecated:FutureWarningz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚfastparquetúfastparquet is not installed©ÚreasonúTODO(infer_string) fastparquet©r   Ústrict©ÚmarksÚpyarrowúpyarrow is not installed)Úparamsc                 ó   — | j                   S ©N©Úparam©Úrequests    ú]/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/tests/io/test_parquet.pyÚenginer$   :   s   € ð2 �=‰=Ðó    c                  ó:   — t         st        j                  d«       y)Nr   r   )Ú_HAVE_PYARROWÚpytestÚskip© r%   r#   Úpar+   V   s   € åÜ�‰Ð.Ô/Ør%   c                 ó®   — t         st        j                  d«       t        «       r0| j	                  t        j
                  j                  dd¬«      «       y)Nr   r   Fr   r   )Ú_HAVE_FASTPARQUETr(   r)   r   ÚapplymarkerÚmarkÚxfailr!   s    r#   Úfpr1   ]   sC   € åÜ�‰Ð2Ô3ÜÔØ×ÑÜ�K‰K×ÑÐ%EÈeÐÓTô	
ð r%   c                  ód   — t        j                  g d¢ddœt        j                  ddg«      ¬«      S )N©é   é   é   Úfoo©ÚAÚBr9   r:   ©Úcolumns)ÚpdÚ	DataFrameÚIndexr*   r%   r#   Ú	df_compatr@   h   s%   € ä�<‰<ši¨eÑ4¼b¿h¹hÈÈSÀzÓ>RÔSÐSr%   c            
      óÎ   — t        j                  t        d«      t        t        dd«      «      t	        j
                  ddd¬«      g d¢t        j                  d	d
¬«      dœ«      } | S )NÚabcr4   é   ç      @ç      @Úfloat64©Údtype©TFTÚ20130101r6   ©Úperiods)ÚaÚbÚdÚeÚf)r=   r>   ÚlistÚrangeÚnpÚarangeÚ
date_range)Údfs    r#   Údf_cross_compatrX   m   sR   € ä	�‰ä�e“Ü”e˜A˜q“kÓ"ä—‘˜3 ¨9Ô5Ú$Ü—‘˜z°1Ô5ñ
	
ó
€Bð €Ir%   c                  óÞ  — t        j                  t        d«      dt        j                  dgg d¢g d¢g d¢t        t        dd«      «      t        j                  d	d
«      j                  d«      t        j                  ddd¬«      dt        j                  dgg d¢t        j                  dd	d¬«      t        j                  d«      t         j                  t        j                  d«      gdœ«      S )NrB   rM   Úc©rM   NrZ   )ó   fooó   bars   baz©r7   ÚbarÚbazr4   rC   r6   é   Úu1rD   rE   rF   rG   ç       @ç      @rI   rJ   Úns©rL   ÚunitÚ20130103)ÚstringÚstring_with_nanÚstring_with_noneÚbytesÚunicodeÚintÚuintÚfloatÚfloat_with_nanÚboolÚdatetimeÚdatetime_with_nat)r=   r>   rR   rT   ÚnanrS   rU   ÚastyperV   Ú	TimestampÚNaTr*   r%   r#   Údf_fullry      s±   € ä�<‰<ä˜5“kØ #¤R§V¡V¨SÐ1Ú 0Ú-Ú,Üœ˜a ›Ó$Ü—I‘I˜a “O×*Ñ*¨4Ó0Ü—Y‘Y˜s C¨yÔ9Ø"¤B§F¡F¨CÐ0Ú'ÜŸ™ j¸!À$ÔGä—‘˜ZÓ(Ü—‘Ü—‘˜ZÓ(ð"ñ	
óð r%   z2019-01-04T16:41:24+0200z%Y-%m-%dT%H:%M:%S%zz2019-01-04T16:41:24+0215z2019-01-04T16:41:24-0200z2019-01-04T16:41:24-0215c                 ó   — | j                   S r   r   r!   s    r#   Útimezone_aware_date_listr{   —   s   € ð �=‰=Ðr%   c                 óÜ   ‡ ‡‡‡‡‡‡‡	— t        |t        j                  «      st        d«      ‚‰xs ddiŠ‰xs i Š‰€‰ Š|r
|‰d<   |‰d<   ˆ	ˆˆˆ ˆˆˆˆfd„}‰€|Š ||
«       y ||
«       y)a  Verify parquet serializer and deserializer produce the same results.

    Performs a pandas to disk and disk to pandas round trip,
    then compares the 2 resulting DataFrames to verify equality.

    Parameters
    ----------
    df: Dataframe
    engine: str, optional
        'pyarrow' or 'fastparquet'
    path: str, optional
    write_kwargs: dict of str:str, optional
    read_kwargs: dict of str:str, optional
    expected: DataFrame, optional
        Expected deserialization result, otherwise will be equal to `df`
    check_names: list of str, optional
        Closed set of column names to be compared
    check_like: bool, optional
        If True, ignore the order of index & columns.
    repeat: int, optional
        How many times to repeat the test
    z temp_file must be a pathlib.PathÚcompressionNr$   c                 ó¾   •— t        | «      D ]N  } ‰j                  ‰fi ‰
¤Ž t        ‰fi ‰	¤Ž}d‰v rd ‰j                  d<   t	        j
                  |‰‰‰‰¬«       ŒP y )Nrj   ©r4   rj   )Úcheck_namesÚ
check_likeÚcheck_dtype)rS   r   r   ÚlocÚtmÚassert_frame_equal)ÚrepeatÚ_Úactualr‚   r�   r€   rW   ÚexpectedÚpathÚread_kwargsÚwrite_kwargss      €€€€€€€€r#   Úcomparez!check_round_trip.<locals>.compareÕ   sl   ø€ Ü�v“ò 	ˆAØˆB�M‰M˜$Ñ/ ,Ò/Ü! $Ñ6¨+Ñ6ˆFà  HÑ,Ø59�—‘Ð1Ñ2Ü×!Ñ!ØØØ'Ø%Ø'öñ	r%   )Ú
isinstanceÚpathlibÚPathÚ
ValueError)rW   Ú	temp_filer$   rŠ   rŒ   r‹   r‰   r€   r�   r‚   r†   r�   s   `  ```````  r#   Úcheck_round_tripr“   ¦   s   ÿ€ ôF �i¤§¡Ô.ÜÐ;Ó<Ð<ØÒ8 M°4Ð#8€LØÒ# €KàÐØˆáØ!'ˆ�XÑØ &ˆ�HÑ÷ó ð €|ØˆÙ��á��r%   c                 ó€   — ddl m} |j                  | d¬«      }|j                  j                  j                  |k(  sJ ‚y)zÂCheck partitions of a parquet file are as expected.

    Parameters
    ----------
    path: str
        Path of the dataset.
    expected: iterable of str
        Expected partition names.
    r   NÚhive)Úpartitioning)Úpyarrow.datasetÚdatasetr–   ÚschemaÚnames)rŠ   r‰   Údsr˜   s       r#   Úcheck_partition_namesrœ   ë   s9   € õ !à�j‰j˜¨FˆjÓ3€GØ×Ñ×&Ñ&×,Ñ,°Ò8Ð8Ñ8r%   c                 ó„   — d}t        j                  t        |¬«      5  t        | |dd«       d d d «       y # 1 sw Y   y xY w)Nz.engine must be one of 'pyarrow', 'fastparquet'©Úmatchr7   r_   )r(   Úraisesr‘   r“   )r@   r’   Úmsgs      r#   Útest_invalid_enginer¢   û   s8   € Ø
:€CÜ	�‰”z¨Ô	-ñ =Ü˜ I¨u°eÔ<÷=÷ =ñ =ús   ž6¶?c                 óÂ   — |r&t         s | j                  j                  d«      | _        t        j                  dd«      5  t        | |«       d d d «       y # 1 sw Y   y xY w)NÚstrúio.parquet.enginer   )r	   r<   rv   r=   Úoption_contextr“   )r@   r+   Úusing_infer_stringr’   s       r#   Útest_options_pyr¨     sQ   € áÕ"6Ø%×-Ñ-×4Ñ4°UÓ;ˆ	Ôä	×	Ñ	Ð.°	Ó	:ñ /Ü˜ IÔ.÷/÷ /ñ /ús   ¿AÁAc                 ór   — t        j                  dd«      5  t        | |«       d d d «       y # 1 sw Y   y xY w)Nr¥   r   ©r=   r¦   r“   )r@   r1   r’   s      r#   Útest_options_fpr«   
  s4   € ô 
×	Ñ	Ð.°Ó	>ñ /Ü˜ IÔ.÷/÷ /ñ /úó   —-­6c                 ór   — t        j                  dd«      5  t        | |«       d d d «       y # 1 sw Y   y xY w)Nr¥   Úautorª   )r@   r1   r+   r’   s       r#   Útest_options_autor¯     s4   € ô 
×	Ñ	Ð.°Ó	7ñ /Ü˜ IÔ.÷/÷ /ñ /úr¬   c                 ó^  — t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚t	        j
                  dd«      5  t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚	 d d d «       t	        j
                  dd«      5  t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚	 d d d «       t	        j
                  dd«      5  t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚t        t        d«      t        «      sJ ‚	 d d d «       y # 1 sw Y   ŒìxY w# 1 sw Y   Œ‡xY w# 1 sw Y   y xY w)Nr   r   r¥   r®   )rŽ   r   r   r   r=   r¦   )r1   r+   s     r#   Útest_options_get_enginer±     sq  € Ü”j Ó+¬[Ô9Ð9Ð9Ü”j Ó/´ÔAÐAÐAä	×	Ñ	Ð.°	Ó	:ñ FÜœ* VÓ,¬kÔ:Ð:Ð:Üœ* YÓ/´Ô=Ð=Ð=Üœ* ]Ó3´_ÔEÐEÑE÷Fô
 
×	Ñ	Ð.°Ó	>ñ FÜœ* VÓ,¬oÔ>Ð>Ð>Üœ* YÓ/´Ô=Ð=Ð=Üœ* ]Ó3´_ÔEÐEÑE÷Fô
 
×	Ñ	Ð.°Ó	7ñ FÜœ* VÓ,¬kÔ:Ð:Ð:Üœ* YÓ/´Ô=Ð=Ð=Üœ* ]Ó3´_ÔEÐEÑE÷Fð F÷Fð Fú÷
Fð Fú÷
Fð Fús'   ÁAFÂ>AFÄ/AF#ÆFÆF Æ#F,c                  óD  — ddl m}  | j                  d«      }| j                  d«      }t        sdn$t	        t
        j                  «      t	        |«      k  }t        sdn$t	        t        j                  «      t	        |«      k  }t        xr | }t        xr | }|sÖ|sÓ|r6d|› d�}t        j                  t        |¬«      5  t        d	«       d d d «       n1d
}t        j                  t        |¬«      5  t        d	«       d d d «       |r6d|› d�}t        j                  t        |¬«      5  t        d	«       d d d «       y d}t        j                  t        |¬«      5  t        d	«       d d d «       y y y # 1 sw Y   ŒuxY w# 1 sw Y   Œ�xY w# 1 sw Y   y xY w# 1 sw Y   y xY w)Nr   )ÚVERSIONSr   r   FzPandas requires version .z. or newer of .pyarrow.rž   r®   z6Unable to find a usable engine; tried using: 'pyarrow'z. or newer of .fastparquet.z3Use pip or conda to install the fastparquet package)Úpandas.compat._optionalr³   Úgetr'   r   r   Ú__version__r-   r   r(   r    ÚImportErrorr   )r³   Ú
pa_min_verÚ
fp_min_verÚhave_pa_bad_versionÚhave_fp_bad_versionÚhave_usable_paÚhave_usable_fprŸ   s           r#   Ú"test_get_engine_auto_error_messager¾   ,  sŽ  € õ 1ð —‘˜iÓ(€JØ—‘˜mÓ,€Jõ ñ 	ä”W×(Ñ(Ó)¬G°JÓ,?Ñ?ð õ !ñ 	ä”[×,Ñ,Ó-´¸
Ó0CÑCð ô #Ò>Ð+>Ð'>€NÜ&ÒBÐ/BÐ+B€Ná¡.áØ/°
¨|Ð;RÐSˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ð #ð MˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ñ Ø/°
¨|Ð;VÐWˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ð #ð JˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ð #ð# #1ˆ>÷#ð #ú÷#ð #ú÷
#ð #ú÷#ð #ús0   Ã E2Ã2E>Ä)F
ÅFÅ2E;Å>FÆ
FÆFc                 óÌ   — | }|j                  ||d ¬«       t        ||¬«      }t        j                  ||«       t        ||ddg¬«      }t        j                  ||ddg   «       y ©N)r$   r}   ©r$   rM   rO   )r$   r<   ©r   r   r„   r…   ©rX   r+   r1   r’   rW   Úresults         r#   Útest_cross_engine_pa_fprÅ   W  sa   € ð 
€BØ‡M�M�) B°D€MÔ9ä˜)¨BÔ/€FÜ×Ñ˜& "Ô%ä˜)¨B¸¸c¸
ÔC€FÜ×Ñ˜& " c¨3 Z¡.Õ1r%   c                 óÌ   — | }|j                  ||d ¬«       t        ||¬«      }t        j                  ||«       t        ||ddg¬«      }t        j                  ||ddg   «       y rÀ   rÂ   rÃ   s         r#   Útest_cross_engine_fp_parÇ   d  s_   € à	€Bà‡M�M�) B°D€MÔ9ä˜)¨BÔ/€FÜ×Ñ˜& "Ô%ä˜)¨B¸¸c¸
ÔC€FÜ×Ñ˜& " c¨3 Z¡.Õ1r%   c                   ó   — e Zd Zd„ Zd„ Zy)ÚBasec                 óz   — t        j                  ||¬«      5  t        |||d ¬«       d d d «       y # 1 sw Y   y xY w)Nrž   ©r}   )r(   r    r   )ÚselfrW   r$   ÚexcÚerr_msgÚtemp_file_paths         r#   Úcheck_error_on_writezBase.check_error_on_writer  s7   € ä�]‰]˜3 gÔ.ñ 	EÜ�r˜>¨6¸tÕD÷	E÷ 	Eñ 	Eús   ˜1±:c                 óv   — t        j                  |«      5  t        |||d ¬«       d d d «       y # 1 sw Y   y xY w)NrË   )r„   Úexternal_error_raisedr   )rÌ   rW   r$   rÍ   rÏ   s        r#   Úcheck_external_error_on_writez"Base.check_external_error_on_writew  s7   € ä×%Ñ% cÓ*ñ 	EÜ�r˜>¨6¸tÕD÷	E÷ 	Eñ 	Eús   –/¯8N)Ú__name__Ú
__module__Ú__qualname__rÐ   rÓ   r*   r%   r#   rÉ   rÉ   q  s   „ òEó
Er%   rÉ   c                   óZ  — e Zd Zd„ Zd„ Zej                  j                  dg 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ej                  j                  dg d¢«      d„ «       Zej                  j,                  ej                  j.                  d„ «       «       Zy)Ú	TestBasicc                 óÌ   — t        j                  g d¢«      ddt        j                  d«      t        j                  g d¢«      fD ]  }d}| j                  ||t        ||«       Œ y )Nr3   r4   r7   rJ   z+to_parquet only supports IO with DataFrames)r=   ÚSeriesrw   rT   ÚarrayrÐ   r‘   )rÌ   r$   r’   Úobjr¡   s        r#   Ú
test_errorzTestBasic.test_error~  s]   € ä�I‰I’iÓ ØØÜ�L‰L˜Ó$Ü�H‰H’YÓð
ò 	OˆCð @ˆCØ×%Ñ% c¨6´:¸sÀIÕNñ	Or%   c           	      ó˜   — t        j                  t        d«      t        t        dd«      «      dœ«      }ddg|_        t        |||«       y )NrB   r4   rC   ©ri   rn   r7   r_   ©r=   r>   rR   rS   r<   r“   )rÌ   r$   r’   rW   s       r#   Útest_columns_dtypeszTestBasic.test_columns_dtypes‰  s=   € Ü�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆð ˜U�^ˆŒ
Ü˜˜Y¨Õ/r%   r}   )NÚgzipÚsnappyÚbrotlic                 óX   — t        j                  dg d¢i«      }t        |||d|i¬«       y )Nr9   r3   r}   ©rŒ   ©r=   r>   r“   )rÌ   r$   r}   r’   rW   s        r#   Útest_compressionzTestBasic.test_compression�  s+   € ä�\‰\˜3¢	Ð*Ó+ˆÜØ�	˜6°ÀÐ0Lö	
r%   c           	      óÒ   — t        j                  t        d«      t        t        dd«      «      dœ«      }t        j                  dt        d«      i«      }t	        ||||ddgi¬«       y )NrB   r4   rC   rß   ri   r<   ©r‰   r‹   ©r=   r>   rR   rS   r“   )rÌ   r$   r’   rW   r‰   s        r#   Útest_read_columnszTestBasic.test_read_columns—  sY   € ä�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆä—<‘< ¬4°«;Ð 7Ó8ˆÜØØØØØ" X JÐ/ö	
r%   c           
      óÐ   — t        j                  t        t        d«      «      t        d«      dœ«      }t        j                  dddgi«      }t	        ||||ddgid	gdgd
œd¬«       y )NrC   Úaabb)rn   Úpartrn   r   r4   Úpartition_colsrï   )rï   ú==rM   )Úfiltersr<   )r‰   rŒ   r‹   r†   rë   )rÌ   r$   Útmp_pathrW   r‰   s        r#   Útest_read_filterszTestBasic.test_read_filters¤  sm   € Ü�\‰\äœE !›H“~Ü˜V›ñó
ˆô —<‘< ¨¨A¨ Ó0ˆÜØØØØØ*¨V¨HÐ5Ø%8Ð$9ÀuÀgÑNØö	
r%   c                 óÄ  — t        j                  d«       t        j                  dg d¢i«      }t	        ||d«       g d¢t        j
                  ddd¬«      t        d	«      g d
¢g}|D ]P  }||_        t        |t        j                  «      r |j                  j                  d «      |_        t	        ||d«       ŒR g d¢|_        d|j                  _        t	        ||d«       y )Nr   r9   r3   )r5   r6   rC   rJ   r6   re   rf   rB   )r4   r6   rC   )r   r4   r5   r7   )r(   Úimportorskipr=   r>   r“   rV   rR   ÚindexrŽ   ÚDatetimeIndexÚ
_with_freqÚname)rÌ   r’   rW   Úindexesr÷   s        r#   Útest_write_indexzTestBasic.test_write_index·  s¿   € Ü×Ñ˜IÔ&Ü�\‰\˜3¢	Ð*Ó+ˆÜ˜˜Y¨	Ô2ò Ü�M‰M˜*¨a°dÔ;Ü�‹KÚð	
ˆð ò 	7ˆEØˆBŒHÜ˜%¤×!1Ñ!1Ô2ØŸ8™8×.Ñ.¨tÓ4�”Ü˜R ¨IÕ6ð		7ò ˆŒØˆ�‰ŒÜ˜˜Y¨	Õ2r%   c                 ó¤   — |}t        j                  dg d¢i«      }t         j                  j                  g d¢«      }||_        t        |||«       y )Nr9   r3   ©)rM   r4   )rM   r5   )rN   r4   )r=   r>   Ú
MultiIndexÚfrom_tuplesr÷   r“   )rÌ   r+   r’   r$   rW   r÷   s         r#   Útest_write_multiindexzTestBasic.test_write_multiindexÎ  sB   € àˆä�\‰\˜3¢	Ð*Ó+ˆÜ—‘×)Ñ)Ò*HÓIˆØˆŒÜ˜˜Y¨Õ/r%   c           
      óÌ  — |}t        j                  dddd¬«      }t        j                  t        j                  j                  d«      j                  dt        |«      z  df«      t        d«      ¬	«      }t         j                  j                  d
dg|gddg¬«      }|j                  d ¬«      }||fD ]/  }||_        t        |||«       t        |||dddgi|ddg   ¬«       Œ1 y )Nz01-Jan-2018z01-Dec-2018ÚMSre   )Úfreqrg   r5   r6   ÚABCr;   ÚLevel1ÚLevel2ÚlevelÚdate©rš   r<   r9   r:   ©r‹   r‰   )r=   rV   r>   rT   ÚrandomÚdefault_rngÚstandard_normalÚlenrR   rÿ   Úfrom_productÚcopyr÷   r“   )	rÌ   r+   r’   r$   ÚdatesrW   Úindex1Úindex2r÷   s	            r#   Útest_multiindex_with_columnsz&TestBasic.test_multiindex_with_columns×  sê   € ØˆÜ—‘˜m¨]ÀÈDÔQˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°a¼#¸e»*±nÀaÐ5HÓIÜ˜“Kô
ˆô —‘×+Ñ+Ø˜Ð! 5Ð)°'¸6Ð1Bð ,ó 
ˆð —‘ 4�Ó(ˆØ˜fÐ%ò 
	ˆEØˆBŒHä˜R ¨FÔ3ÜØØØØ&¨¨c¨
Ð3Ø˜S #˜J™öñ	
	r%   c                 óÐ  — t        j                  g d¢g d¢dœ«      }d ddœ}|j                  d¬«      }t        |||||¬«       t        j                  g d¢g d¢dœg d	¢¬
«      }t        |||||¬«       g d¢g d¢g}t        j                  t	        t        d«      «      t        d«      D �cg c]  }| ‘Œ c}dœ|¬
«      }|j                  d¬«      }t        |||||¬«       y c c}w )Nr3   )ÚqÚrÚs)rM   rN   F)r}   r÷   T)Údrop©rŒ   r‰   )ÚzyxÚwvuÚtsr©r÷   ©r_   r_   r`   r`   r7   r7   Úquxr!  ©ÚoneÚtwor#  r$  r#  r$  r#  r$  é   )r#  r$  )r=   r>   Úreset_indexr“   rR   rS   )rÌ   r$   r’   rW   rŒ   r‰   ÚarraysÚis           r#   Útest_write_ignoring_indexz#TestBasic.test_write_ignoring_indexî  sä   € ô �\‰\¢	²Ñ@ÓAˆà'+°eÑ<ˆð —>‘> t�>Ó,ˆäØ�	˜6°Àxõ	
ô
 �\‰\Ú¢/Ñ2Ò:Oô
ˆô 	Ø�	˜6°Àxõ	
ò EÚDð
ˆô �\‰\Üœ˜q›“N¼¸a»Ö+A°1¨QªBÒ+AÑBÈ&ô
ˆð —>‘> t�>Ó,ˆÜØ�	˜6°Àxö	
ùò	 ,Bs   Â+
C#
c                 ó0  — t         j                  j                  g d¢«      }t        j                  t        j
                  j                  d«      j                  d«      |¬«      }|dk(  r| j                  ||t        d|«       y |dk(  rt        |||«       y y )Nrþ   r5   )rC   r6   r;   r   úColumn name must be a stringr   )r=   rÿ   r   r>   rT   r  r  r  rÐ   Ú	TypeErrorr“   )rÌ   r$   r’   Ú
mi_columnsrW   s        r#   Útest_write_column_multiindexz&TestBasic.test_write_column_multiindex  sƒ   € ä—]‘]×.Ñ.Ò/MÓNˆ
Ü�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àjô
ˆð �]Ò"Ø×%Ñ%Ø�FœIÐ'EÀyõð �yÒ Ü˜R ¨FÕ3ð !r%   c                 ó$  — g d¢g d¢g}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }ddg|j                  _        |dk(  r| j                  ||t        d	|«       y |d
k(  rt        |||«       y y )Nr   )r4   r5   r4   r5   r4   r5   r4   r5   r5   ©r%  r%  r;   r  r  r   zColumn namer   )r=   r>   rT   r  r  r  r<   rš   rÐ   r‘   r“   ©rÌ   r$   r’   r'  rW   s        r#   Ú&test_write_column_multiindex_nonstringz0TestBasic.test_write_column_multiindex_nonstring"  s‹   € ò
 EÚ$ð
ˆô �\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð % hÐ/ˆ�
‰
ÔØ�]Ò"Ø×%Ñ% b¨&´*¸mÈYÕWØ�yÒ Ü˜R ¨FÕ3ð !r%   c                 óÞ   — |}g d¢g d¢g}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }ddg|j                  _        t        |||«       y )Nr   r"  r5   r0  r;   Ú	ColLevel1Ú	ColLevel2)	r=   r>   rT   r  r  r  r<   rš   r“   ©rÌ   r+   r’   r$   r'  rW   s         r#   Ú#test_write_column_multiindex_stringz-TestBasic.test_write_column_multiindex_string3  sg   € ð ˆò EÚDð
ˆô �\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð (¨Ð5ˆ�
‰
Ôä˜˜Y¨Õ/r%   c                 óÒ   — |}g d¢}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }d|j                  _        t        |||«       y )N)r_   r`   r7   r!  r5   ©r%  rC   r;   Ú	StringCol)	r=   r>   rT   r  r  r  r<   rú   r“   r6  s         r#   Útest_write_column_index_stringz(TestBasic.test_write_column_index_stringD  sV   € ð ˆò .ˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð &ˆ�
‰
Œä˜˜Y¨Õ/r%   c                 ó  — g d¢}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }d|j                  _        |dk(  r| j                  ||t        d|«       y t        |||«       y )N©r4   r5   r6   rC   r5   r9  r;   ÚNonStringColr   r+  )r=   r>   rT   r  r  r  r<   rú   rÐ   r,  r“   r1  s        r#   Ú!test_write_column_index_nonstringz+TestBasic.test_write_column_index_nonstringR  ss   € ò ˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð )ˆ�
‰
ŒØ�]Ò"Ø×%Ñ%Ø�FœIÐ'EÀyõô ˜R ¨FÕ3r%   c                 óª  — t        j                  d«      }|dk(  r1t         j                  j                  d¬«      }|j	                  |«       t        j                  t        j                  g d¢d«      t        j                  g d¢d«      t        j                  g d¢«      t        j                  g d	¢«      t        j                  g d
¢d«      t        j                  g d¢d«      t        j                  g d¢d«      dœ«      }|j                  ||«       t        ||¬«      }t        ||d¬«      }|d   j                  t        j                  d«      k(  sJ ‚t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      t        j                  g d¢d¬«      t        j                  g d	¢d¬«      t        j                  g d
¢d¬«      t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }	|dk(  r&|j                  dd¬«      }|	j                  dd¬«      }	t        j                   ||	«       y )Núpyarrow.parquetr   z.Fastparquet nullable dtype support is disabledr   ©r4   r5   r6   NÚint64Úuint8)rM   rN   rZ   N)TFTNr=  )ç      ð?rc   rd   NÚfloat32rF   )rM   rN   rZ   rO   rP   rQ   ÚgrÁ   Únumpy_nullable)r$   Údtype_backendrM   ÚInt64rG   ÚUInt8ri   ÚbooleanÚFloat32ÚFloat64rZ   r4   )Úaxis)r(   rö   r/   r0   r.   r   ÚtablerÛ   Úwrite_tabler   rH   rT   r=   r>   r  r„   r…   )
rÌ   r$   r"   r’   Úpqr/   rP  Úresult1Úresult2r‰   s
             r#   Útest_dtype_backendzTestBasic.test_dtype_backendb  sÃ  € Ü× Ñ Ð!2Ó3ˆà�]Ò"ô —;‘;×$Ñ$ØGð %ó ˆDð ×Ñ Ô%ä—‘ä—]‘]¢?°GÓ<Ü—]‘]¢?°GÓ<Ü—]‘]Ò#8Ó9Ü—]‘]Ò#<Ó=ä—]‘]¢<°Ó9ä—]‘]Ò#8¸)ÓDÜ—]‘]Ò#8¸)ÓDñ
ó
ˆð 	�‰�u˜iÔ(Ü˜y°Ô8ˆÜ˜y°ÐGWÔXˆà�s‰|×!Ñ!¤R§X¡X¨iÓ%8Ò8Ð8Ð8Ü—<‘<ä—X‘Xšo°WÔ=Ü—X‘Xšo°WÔ=Ü—X‘XÒ3¸8ÔDÜ—X‘XÒ7¸yÔIÜ—X‘Xšl°'Ô:Ü—X‘XÒ3¸9ÔEÜ—X‘XÒ3¸9ÔEñó

ˆð �]Ò"ð —l‘l 3¨Q�lÓ/ˆGØ—}‘} S¨q�}Ó1ˆHÜ
×Ñ˜g xÕ0r%   rH   )	rJ  rK  rL  Úobjectzdatetime64[ns, UTC]rp   z	period[D]rN  ri   c                 ó  — t        j                  dt        j                  g |¬«      i«      }t        j                  dd«       d }|dk(  r,t        j                  dt        j                  g d¬«      i«      }t        |||ddi|¬	«       y )
NÚvaluerG   r   ú11.0.0rp   rN  rI  rH  r  )r=   r>   rÛ   r(   rö   r“   )rÌ   r+   rH   r’   rW   r‰   s         r#   Útest_read_empty_arrayzTestBasic.test_read_empty_array’  sˆ   € ô  �\‰\àœŸ™ "¨EÔ2ðó
ˆô
 	×Ñ˜I xÔ0àˆØ�GÒÜ—|‘|àœRŸX™X b°	Ô:ðóˆHô
 	ØØØØ(Ð*:Ð;Øö	
r%   c                 ó€  — |dk7  rt        j                  |«       t         |dddd«      d¬«      5 }|j                  |j	                  «       ¬«       t        |j                  |¬	«      }d d d «       |}t        r$|j                  j                  t        «      |_        t        j                  |«       y # 1 sw Y   ŒLxY w)
Nr®   ÚioÚdataÚparquetzsimple.parquetÚrb)Úmode)ÚcontentrÁ   )r(   rö   ÚopenÚserve_contentÚreadr   Úurlr	   r<   rv   rV  r„   r…   )rÌ   Ú
httpserverÚdatapathr@   r$   rQ   rW   r‰   s           r#   Útest_parquet_read_from_urlz$TestBasic.test_parquet_read_from_url¸  s¢   € ð �VÒÜ×Ñ Ô'Ü‘(˜4 ¨Ð4DÓEÈDÔQð 	=ÐUVØ×$Ñ$¨Q¯V©V«XÐ$Ô6Ü˜jŸn™n°VÔ<ˆB÷	=ð ˆÝØ'×/Ñ/×6Ñ6´vÓ>ˆHÔÜ
×Ñ˜b (Õ+÷	=ð 	=ús   ±8B4Â4B=N)rÔ   rÕ   rÖ   rÝ   rá   r(   r/   Úparametrizerè   rì   rô   rü   r  r  r)  r.  r2  r7  r;  r?  rU  rZ  ÚnetworkÚ
single_cpurh  r*   r%   r#   rØ   rØ   }  sÍ   „ ò	Oò0ð ‡[�[×Ñ˜]Ò,NÓOñ
ó Pð
ò
ò
ò&3ò.0òò.$
òL4ò4ò"0ò"0ò4ò .1ð` ‡[�[×ÑØò
	
óñ
óð
ð0 ‡[�[×ÑØ‡[�[×Ññ
,ó ó ñ
,r%   rØ   c                   óx  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                   e«       d¬	«      e
j                  j                  e d
¬	«      e
j                  j!                  deej&                  g«      d„ «       «       «       Zd„ Ze
j                  j,                  d„ «       Ze
j                  j,                  d„ «       Ze
j                  j,                  e
j                  j!                  ddgg g«      d„ «       «       Zd„ Zd„ Zd„ Zd„ Ze
j                  j!                  ded„ gddg¬«      d„ «       Zd„ Zd„ Z d„ Z!d„ Z"d „ Z#d!„ Z$d"„ Z%d#„ Z&e
j                  jO                  d$«      d%„ «       Z(d&„ Z)e
j                  j!                  d'd(d)g e
jT                  d*d+ge
j                  j                  e+e,d,¬-«      ¬.«       e
jT                   e-jZ                  d/d)d)d(d(«       e-jZ                  d/d)d)d)d)«      ge
j                  j                  e.d0¬	«      ¬.«      g«      d1„ «       Z/d2„ Z0d3„ Z1d4„ Z2d5„ Z3d6„ Z4d7„ Z5d8„ Z6y9):ÚTestParquetPyArrowc                 ó¸   — |}t        j                  dd«       t        j                  ddd¬«      }|j	                  d «      }||d<   g d¢|d	<   t        |||«       y )
Nr   rY  rJ   r6   úEurope/Brussels©rL   ÚtzÚdatetime_tz©TNTÚbool_with_none)r(   rö   r=   rV   rù   r“   )rÌ   r+   ry   r’   rW   Údtis         r#   Ú
test_basiczTestParquetPyArrow.test_basicÈ  s[   € ØˆÜ×Ñ˜I xÔ0ô �m‰m˜J°Ð6GÔHˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÚ1ˆÐÑä˜˜Y¨Õ+r%   c           	      óp   — |}t        j                  ddd¬«      |d<   t        ||||ddg   dddgi¬	«       y )
NrJ   r6   ro  rp  rr  ri   rn   r<   rê   )r=   rV   r“   )rÌ   r+   ry   r’   rW   s        r#   Útest_basic_subset_columnsz,TestParquetPyArrow.test_basic_subset_columnsÔ  sL   € ð ˆäŸM™M¨*¸aÐDUÔVˆˆ=ÑäØØØØ˜ 5Ð)Ñ*Ø" X¨uÐ$5Ð6ö	
r%   c                 ó  — |j                  |¬«      }t        |t        «      sJ ‚t        |«      }t	        |«      }|j                  «       }d |j                  d<   |d   j                  d«      |d<   t        j                  ||«       y )NrÁ   r   rt   zM8[us])
r   rŽ   rl   r   r   r  rƒ   rv   r„   r…   )rÌ   r+   ry   Ú	buf_bytesÚ
buf_streamÚresr‰   s          r#   Ú*test_to_bytes_without_path_or_buf_providedz=TestParquetPyArrow.test_to_bytes_without_path_or_buf_providedã  s   € à×&Ñ&¨bÐ&Ó1ˆ	Ü˜)¤UÔ+Ð+Ð+ä˜YÓ'ˆ
Ü˜:Ó&ˆà—<‘<“>ˆØ-1ˆ�‰Ð)Ñ*Ø(0Ð1DÑ(E×(LÑ(LÈXÓ(VˆÐ$Ñ%Ü
×Ñ˜c 8Õ,r%   c                 óØ   — t        j                  t        j                  d«      j	                  dd«      t        d«      ¬«      j                  «       }| j                  ||t        d|«       y )Né   rC   r6   Úaaar;   zDuplicate column names found©	r=   r>   rT   rU   ÚreshaperR   r  rÐ   r‘   ©rÌ   r+   r’   rW   s       r#   Útest_duplicate_columnsz)TestParquetPyArrow.test_duplicate_columnsð  sN   € ä�\‰\œ"Ÿ)™) B›-×/Ñ/°°1Ó5¼tÀE»{ÔK×PÑPÓRˆØ×!Ñ!Ø�”JÐ >À	õ	
r%   c                 óv   — t        j                  dt        j                  dd¬«      i«      }t        |||«       y )NrM   ú1 dayr6   rK   )r=   r>   Útimedelta_ranger“   rƒ  s       r#   Útest_timedeltaz!TestParquetPyArrow.test_timedelta÷  s.   € Ü�\‰\˜3¤× 2Ñ 2°7ÀAÔ FÐGÓHˆÜ˜˜Y¨Õ+r%   c                 óz   — t        j                  dg d¢i«      }| j                  ||t        j                  |«       y )NrM   ©rM   r4   rc   )r=   r>   rÓ   r   ÚArrowExceptionrƒ  s       r#   Útest_unsupportedz#TestParquetPyArrow.test_unsupportedû  s1   € ä�\‰\˜3¢Ð.Ó/ˆð 	×*Ñ*¨2¨r´7×3IÑ3IÈ9ÕUr%   c                 óì   — t        j                  ddt         j                  ¬«      }t        j                  |dg¬«      }t
        r#| j                  ||t        j                  |«       y t        |||«       y )Nr5   é
   rG   Úfp16©r]  r<   )
rT   rU   Úfloat16r=   r>   r   rÓ   r   r‹  r“   )rÌ   r+   r’   r]  rW   s        r#   Útest_unsupported_float16z+TestParquetPyArrow.test_unsupported_float16  sZ   € ô �y‰y˜˜B¤b§j¡jÔ1ˆÜ�\‰\˜t¨f¨XÔ6ˆÝØ×.Ñ.Ø�Bœ×.Ñ.°	õô ˜R ¨BÕ/r%   zqPyArrow does not cleanup of partial files dumps when unsupported dtypes are passed to_parquet function in windowsr   zfloat16 works on 15Ú	path_typec                 óh  — t        j                  ddt         j                  ¬«      }t        j                  |dg¬«      } ||«      }t        j                  t        j                  «      5  |j                  ||¬«       d d d «       t        j                  j                  |«      rJ ‚y # 1 sw Y   Œ+xY w)Nr5   rŽ  rG   r�  r�  )rŠ   r$   )rT   rU   r‘  r=   r>   r„   rÒ   r   r‹  r   ÚosrŠ   Úisfile)rÌ   r+   r“  r’   r]  rW   rŠ   s          r#   Ú test_unsupported_float16_cleanupz3TestParquetPyArrow.test_unsupported_float16_cleanup  sˆ   € ô �y‰y˜˜B¤b§j¡jÔ1ˆÜ�\‰\˜t¨f¨XÔ6ˆá˜Ó#ˆÜ×%Ñ%¤g×&<Ñ&<Ó=ñ 	0Ø�M‰M˜t¨BˆMÔ/÷	0ä—7‘7—>‘> $Ô'Ð'Ð'Ð'÷	0ð 	0ús   Á*B(Â(B1c           
      ó  — t        j                  t        j                  t        d«      «      t        j                  g d¢t        j                  g d¢«      ¬«      t        j                  g d¢g d¢d¬«      d	œ«      }t        |||«       y )
NÚabcdef)r_   r7   r7   r_   Nr_   r^   rG   )NrN   rZ   NrZ   rN   )rN   rZ   rO   T)Ú
categoriesÚordered©rM   rN   rZ   )r=   r>   ÚCategoricalrR   ÚCategoricalDtyper“   rƒ  s       r#   Útest_categoricalz#TestParquetPyArrow.test_categorical#  sh   € ä�\‰\ä—^‘^¤D¨£NÓ3ä—^‘^Ú=Ü×-Ñ-Ò.CÓDôô
 —^‘^Ú4Ú.Ø ôñó
ˆô" 	˜˜Y¨Õ+r%   c                 ó–   — t        j                  d«      } |j                  di |¤Ž}d|i}t        ||||j                  › d�||¬«       y )NÚs3fsÚ
filesystemú/pyarrow.parquet©rŠ   r‹   rŒ   r*   )r(   rö   ÚS3FileSystemr“   rú   )	rÌ   r@   Ús3_bucket_publicÚs3sor+   r’   r¡  Ús3Úkws	            r#   Útest_s3_roundtrip_explicit_fsz0TestParquetPyArrow.test_s3_roundtrip_explicit_fs8  s\   € ô ×"Ñ" 6Ó*ˆØˆT×ÑÑ& Ñ&ˆØ˜BÐˆÜØØØØ$×)Ñ)Ð*Ð*:Ð;ØØö	
r%   c                 óJ   — d|i}t        |||d|j                  › d�||¬«       y )NÚstorage_optionsús3://r£  r¤  ©r“   rú   )rÌ   r@   r¦  r§  r+   r’   s         r#   Útest_s3_roundtripz$TestParquetPyArrow.test_s3_roundtripH  s:   € ð " 4Ð(ˆÜØØØØÐ)×.Ñ.Ð/Ð/?Ð@ØØö	
r%   Úpartition_colr9   c                 ó:  — t        j                  d«       |j                  «       }|rL|j                  t        j                  |t        j                  «      «      }d}||   j                  |«      ||<   t        ||||d|j                  › d�d|i|d |dœdd¬	«	       y )
Nr¡  Úcategoryr­  z/parquet_dirr¬  )rð   r}   r¬  Tr4   )r‰   rŠ   r‹   rŒ   r�   r†   )
r(   rö   r  rv   ÚdictÚfromkeysrT   Úint32r“   rú   )	rÌ   r@   r¦  r+   r°  r§  r’   Úexpected_dfÚpartition_col_types	            r#   Útest_s3_roundtrip_for_dirz,TestParquetPyArrow.test_s3_roundtrip_for_dirU  s­   € ô
 	×Ñ˜FÔ#à—n‘nÓ&ˆñ Ø%×,Ñ,¬T¯]©]¸=Ì"Ï(É(Ó-SÓTˆKØ!+Ðà)4°]Ñ)C×)JÑ)JØ"ó*ˆK˜Ñ&ô 	ØØØØ ØÐ)×.Ñ.Ð/¨|Ð<Ø*¨DÐ1à"/Ø#Ø#'ñð
 Øö	
r%   c                 óö   — t        j                  d«       t        «       }|j                  |«       t	        |«      }|r&t
        s |j                  j                  d«      |_        t        j                  ||«       y )Nr   r¤   )
r(   rö   r   r   r   r	   r<   rv   r„   r…   )rÌ   r@   r§   ÚbufferÚdf_from_bufs        r#   Útest_read_file_like_obj_supportz2TestParquetPyArrow.test_read_file_like_obj_supportw  s^   € Ü×Ñ˜IÔ&Ü“ˆØ×Ñ˜VÔ$Ü" 6Ó*ˆÙÕ&:Ø )× 1Ñ 1× 8Ñ 8¸Ó ?ˆIÔÜ
×Ñ˜i¨Õ5r%   c                 ón  — t        j                  d«       |j                  dd«       |j                  dd«       t        j                  t        d¬«      5  t        d«       d d d «       t        j                  t        d¬«      5  |j                  d«       d d d «       y # 1 sw Y   Œ?xY w# 1 sw Y   y xY w)Nr   ÚHOMEÚTestingUserÚUSERPROFILEz.*TestingUser.*rž   z~/file.parquet)r(   rö   Úsetenvr    ÚOSErrorr   r   )rÌ   r@   Úmonkeypatchs      r#   Útest_expand_userz#TestParquetPyArrow.test_expand_user€  s•   € Ü×Ñ˜IÔ&Ø×Ñ˜6 =Ô1Ø×Ñ˜=¨-Ô8Ü�]‰]œ7Ð*<Ô=ñ 	+ÜÐ)Ô*÷	+ä�]‰]œ7Ð*<Ô=ñ 	3Ø× Ñ Ð!1Ô2÷	3ð 	3÷	+ð 	+ú÷	3ð 	3ús   ÁBÂB+ÂB(Â+B4c                 ó˜   — ddg}|}|j                  ||d ¬«       t        ||«       t        |«      j                  |j                  k(  sJ ‚y )Nrr   rn   ©rð   r}   ©r   rœ   r   Úshape)rÌ   ró   r+   ry   rð   rW   s         r#   Útest_partition_cols_supportedz0TestParquetPyArrow.test_partition_cols_supported‰  sI   € à  %˜ˆØˆØ
�‰�h¨~È4ˆÔPÜ˜h¨Ô7Ü˜HÓ%×+Ñ+¨r¯x©xÒ7Ð7Ñ7r%   c                 óš   — d}|g}|}|j                  ||d ¬«       t        ||«       t        |«      j                  |j                  k(  sJ ‚y )Nrr   rÆ  rÇ  )rÌ   ró   r+   ry   rð   Úpartition_cols_listrW   s          r#   Útest_partition_cols_stringz-TestParquetPyArrow.test_partition_cols_string‘  sO   € àˆØ-Ð.ÐØˆØ
�‰�h¨~È4ˆÔPÜ˜hÐ(;Ô<Ü˜HÓ%×+Ñ+¨r¯x©xÒ7Ð7Ñ7r%   c                 ó   — | S r   r*   )Úxs    r#   ú<lambda>zTestParquetPyArrow.<lambda>›  s   €  Q€ r%   ri   zpathlib.Path)Úidsc                 ó�   — d}|g}|} ||«      }|j                  ||¬«       t        |«      j                  |j                  k(  sJ ‚y )Nr:   )rð   )r   r   rÈ  )	rÌ   ró   r+   r@   r“  rð   rË  rW   rŠ   s	            r#   Útest_partition_cols_pathlibz.TestParquetPyArrow.test_partition_cols_pathlibš  sO   € ð ˆØ-Ð.ÐØˆá˜Ó"ˆØ
�‰�dÐ+>ˆÔ?Ü˜DÓ!×'Ñ'¨2¯8©8Ò3Ð3Ñ3r%   c                 óL   — t        j                  g g ¬«      }t        |||«       y )N)r÷   r<   rç   rƒ  s       r#   Útest_empty_dataframez'TestParquetPyArrow.test_empty_dataframe¨  s   € ä�\‰\ ¨BÔ/ˆÜ˜˜Y¨Õ+r%   c                 óô   — dd l }t        j                  dddgi«      } |j                   |j                  d |j
                  «       ¬«      g«      }|j                  t        «      }t        |||d|i|¬«       y )Nr   rÎ  r4   ©Útyper™   r  )	r   r=   r>   r™   ÚfieldÚbool_rv   rr   r“   )rÌ   r+   r’   r   rW   r™   Úout_dfs          r#   Útest_write_with_schemaz)TestParquetPyArrow.test_write_with_schema­  sh   € Ûä�\‰\˜3  A ˜-Ó(ˆØ�—‘  §¡¨s¸¸¿¹»Ô!IÐ JÓKˆØ—‘œ4“ˆÜØ�	˜2¨X°vÐ,>Èö	
r%   c           	      óÌ  — t        j                  d«       t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }|r't
        r!t        ||||j                  d	d
i«      ¬«       nt        |||«       t        j                  dt        j                  g d¢d¬«      i«      }t        |||«       y )Nr   r3   rJ  rG   ÚUInt32r[   ri   rœ  rZ   r¤   ©r‰   rM   rB  )r(   rö   r=   r>   rÚ   r	   r“   rv   )rÌ   r+   r§   r’   rW   s        r#   Ú test_additional_extension_arraysz3TestParquetPyArrow.test_additional_extension_arrays·  s©   € ô 	×Ñ˜IÔ&Ü�\‰\ä—Y‘Yšy°Ô8Ü—Y‘Yšy°Ô9Ü—Y‘YÒ/°xÔ@ñó
ˆñ Õ"6Ü˜R ¨B¸¿¹ÀCÈÀ<Ó9PÖQä˜R ¨BÔ/ä�\‰\˜3¤§	¡	ª/ÀÔ IÐJÓKˆÜ˜˜Y¨Õ+r%   c                 óÈ  — t        j                  d«       t        j                  dt        j                  g d¢d¬«      i«      }t        j
                  d|«      5  |rNt        r|j                  d«      }n|j                  d|› d	�«      }|j                  j                  d«      |_        n|j                  d|› d	�«      }t        ||||¬
«       d d d «       y # 1 sw Y   y xY w)Nr   rM   r[   ústring[pyarrow]rG   Ústring_storager¤   zstring[ú]rÞ  )
r(   rö   r=   r>   rÚ   r¦   r	   rv   r<   r“   )rÌ   r+   râ  r§   r’   rW   r‰   s          r#   Ú test_pyarrow_backed_string_arrayz3TestParquetPyArrow.test_pyarrow_backed_string_arrayÊ  sÇ   € ô 	×Ñ˜IÔ&Ü�\‰\˜3¤§	¡	Ò*:ÐBSÔ TÐUÓVˆÜ×ÑÐ/°Ó@ñ 		CÙ!Ý'Ø!Ÿy™y¨Ó/‘Hà!Ÿy™y¨7°>Ð2BÀ!Ð)DÓE�HØ#+×#3Ñ#3×#:Ñ#:¸5Ó#A�Õ àŸ9™9 w¨~Ð.>¸aÐ%@ÓA�Ü˜R ¨B¸ÕB÷		C÷ 		Cñ 		Cús   ÁA5CÃC!c                 óJ  — t        j                  d«       t        j                  t        j                  j                  g d¢«      t        j                  ddd¬«      t        j                  j                  t        j                  ddd¬«      «      dœ«      }t        |||«       y )	Nr   ))r   r4   )r4   r5   )r6   rC   z
2012-01-01r6   ÚD)rL   r  rC   )rZ   rO   rP   )
r(   rö   r=   r>   ÚIntervalIndexr   Úperiod_rangeÚfrom_breaksrV   r“   rƒ  s       r#   Útest_additional_extension_typesz2TestParquetPyArrow.test_additional_extension_typesÛ  s|   € ô 	×Ñ˜IÔ&Ü�\‰\ä×%Ñ%×1Ñ1Ò2JÓKÜ—_‘_ \¸1À3ÔGä×%Ñ%×1Ñ1Ü—M‘M ,¸ÀÔDóñ	ó	
ˆô 	˜˜Y¨Õ+r%   c                 ó„   — d}t        j                  dt        j                  ddd¬«      i«      }t        |||d|i¬«       y )	Nz2.6rM   z
2017-01-01Ú1nsrŽ  ©r  rL   Úversionræ   )r=   r>   rV   r“   )rÌ   r+   r’   ÚverrW   s        r#   Útest_timestamp_nanosecondsz-TestParquetPyArrow.test_timestamp_nanosecondsë  s=   € ð ˆÜ�\‰\˜3¤§¡¨lÀÐPRÔ SÐTÓUˆÜ˜˜Y¨¸)ÀSÐ9IÖJr%   c                 ó`   — d|gz  }t        j                  |d|i¬«      }t        |||d¬«       y )Né   Úindex_as_col©r÷   r]  F)r‚   rç   )rÌ   r+   r{   r’   ÚidxrW   s         r#   Útest_timezone_aware_indexz,TestParquetPyArrow.test_timezone_aware_indexò  s3   € ØÐ+Ð,Ñ,ˆÜ�\‰\ ¨>¸3Ð*?Ô@ˆÜ˜˜Y¨¸Ö>r%   c                 óä   — t        j                  d«       t        j                  dt	        t        d«      «      i«      }|j                  ||¬«       t        ||dg¬«      }t        |«      dk(  sJ ‚y )Nr   rM   r6   rÁ   ©rM   rñ   r   ©rò   r4   )	r(   rö   r=   r>   rR   rS   r   r   r  )rÌ   r+   r’   rW   rÄ   s        r#   Útest_filter_row_groupsz)TestParquetPyArrow.test_filter_row_groups÷  s^   € ä×Ñ˜IÔ&Ü�\‰\˜3¤¤U¨1£X£Ð/Ó0ˆØ
�‰�i¨ˆÔ+Ü˜i¨°nÐ5EÔFˆÜ�6‹{˜aÒÐÑr%   z2ignore:make_block is deprecated:DeprecationWarningc                 óD  — dd l }|}t        j                  dddd¬«      }|j                  d «      }||d<   g d¢|d	<   |j                  j                  |«      }|j                  t        j                  ¬
«      }|d   j                  d«      |d<   t        |||ddi|¬«       y )Nr   rJ   r6   ro  re   )rL   rq  rg   rr  rs  rt  )Útypes_mapperrt   ztimestamp[us][pyarrow]rI  r   ©r$   r‹   r‰   )
r   r=   rV   rù   ÚTableÚfrom_pandasÚ	to_pandasÚ
ArrowDtyperv   r“   )	rÌ   r+   ry   r’   r   rW   ru  Úpa_tabler‰   s	            r#   Ú&test_read_dtype_backend_pyarrow_configz9TestParquetPyArrow.test_read_dtype_backend_pyarrow_configÿ  s¬   € ãàˆô �m‰m˜J°Ð6GÈdÔSˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÚ1ˆÐÑà—=‘=×,Ñ,¨RÓ0ˆØ×%Ñ%´2·=±=Ð%ÓAˆØ(0Ð1DÑ(E×(LÑ(LØ$ó)
ˆÐ$Ñ%ô 	ØØØØ(¨)Ð4Øö	
r%   c                 óî   — t        j                  dddgit        j                  ddgd¬«      d¬	«      }|j                  «       }|j                  j                  d«      |_        t        |||d
di|¬«       y )NrM   r4   r5   r6   rC   Útest©rú   zint64[pyarrow])r÷   rH   rI  r   rý  )r=   r>   r?   r  r÷   rv   r“   )rÌ   r+   r’   rW   r‰   s        r#   Ú,test_read_dtype_backend_pyarrow_config_indexz?TestParquetPyArrow.test_read_dtype_backend_pyarrow_config_index  so   € Ü�\‰\Ø�1�a�&ˆM¤§¡¨1¨a¨&°vÔ!>ÐFVô
ˆð —7‘7“9ˆà!Ÿ™×.Ñ.Ð/?Ó@ˆŒÜØØØØ(¨)Ð4Øö	
r%   r<   r   r4   r\   r]   z*https://github.com/apache/arrow/pull/44171)r    r   r   éÛ  z/pa.pandas_compat passes 'datetime64' to .astypec           	      ó”   — t        j                  t        d«      t        t        dd«      «      dœ«      }||_        t        |||«       y )NrB   r4   rC   rß   rà   )rÌ   r+   r<   r’   rW   s        r#   Útest_columns_dtypes_not_invalidz2TestParquetPyArrow.test_columns_dtypes_not_invalid(  s9   € ô2 �\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆàˆŒ
Ü˜˜Y¨Õ+r%   c                 óx   — t        j                  t        j                  g d¢d¬«      ¬«      }t        |||«       y )Nrœ  zcustom namer  r  )r=   r>   r?   r“   rƒ  s       r#   Útest_empty_columnsz%TestParquetPyArrow.test_empty_columnsF  s'   € ä�\‰\¤§¡ª¸}Ô MÔNˆÜ˜˜Y¨Õ+r%   c                 ó¾   — t        j                  ddgi¬«      }ddi|_        |j                  ||¬«       t	        ||¬«      }|j                  |j                  k(  sJ ‚y )Nr4   ©r]  Útest_attributerÁ   )r=   r>   Úattrsr   r   )rÌ   r’   r+   rW   Únew_dfs        r#   Útest_df_attrs_persistencez,TestParquetPyArrow.test_df_attrs_persistenceK  sT   € Ü�\‰\  A 3˜xÔ(ˆØ$ aÐ(ˆŒØ
�‰�i¨ˆÔ+Ü˜i°Ô3ˆØ�|‰|˜rŸx™xÒ'Ð'Ñ'r%   c           	      óø  — t        j                  dddgiddg¬«      }|j                  ||¬«       t        j                  dd«      5  t	        ||¬«      }d d d «       t        j
                  t        j                  ¬	«      }t        j                  dddgi|t        j                  ddg|¬
«      t        j                  dgt        r|st        n|¬
«      ¬«      }t        j                  |«       y # 1 sw Y   ŒœxY w)NrM   rÎ  ÚyrN   )r]  r÷   rÁ   úfuture.infer_stringT©Úna_valuerG   )r]  rH   r÷   r<   )r=   r>   r   r¦   r   ÚStringDtyperT   ru   r?   r	   rV  r„   r…   )rÌ   r’   r+   r§   rW   rÄ   rH   r‰   s           r#   Útest_string_inferencez(TestParquetPyArrow.test_string_inferenceR  sÐ   € ä�\‰\  c¨3 ZÐ0¸¸c¸
ÔCˆØ
�‰�i¨ˆÔ+Ü×ÑÐ4°dÓ;ñ 	8Ü! )°BÔ7ˆF÷	8ä—‘¬¯©Ô/ˆÜ—<‘<Ø˜˜S�zÐ"ØÜ—(‘(˜C ˜:¨UÔ3Ü—H‘HØ�å2Ñ;M•FÐSXôô	

ˆô 	×Ñ˜f hÕ/÷	8ð 	8ús   ÁC0Ã0C9c           	      ó„  — dd l }t        j                  dt        d«      gid¬«      }|j	                  ||j                  d|j                  d«      fg«      ¬«       t        |«      }t        rt        j                  ddgid	¬«      }n#t        j                  dt        d«      gid
¬«      }t        j                  ||«       y )Nr   rM   z123.00rá  rG   rò  )r™   Ú123ri   rV  )r   r=   r>   r   r   r™   Ú
decimal128r   r	   r„   r…   )rÌ   r’   r+   rW   rÄ   r‰   s         r#   Útest_roundtrip_decimalz)TestParquetPyArrow.test_roundtrip_decimalf  s�   € ãä�\‰\˜3¤¨Ó!2Ð 3Ð4Ð<MÔNˆØ
�‰�i¨¯	©	°C¸¿¹ÀqÓ9IÐ3JÐ2KÓ(LˆÔMÜ˜iÓ(ˆÝÜ—|‘| S¨5¨' N¸(ÔC‰Hä—|‘| S¬7°8Ó+<Ð*=Ð$>ÀhÔOˆHÜ
×Ñ˜f hÕ/r%   c           
      ó&  — dd l }dd lm} |j                  d|j	                  g d¢|j                  «       «      i«      }|j                  ||«       t        j                  dd«      5  t        |«      }d d d «       t        j                  dg d¢it        j                  t        j                  ¬«      t        j                  dgt        j                  t        j                  ¬«      ¬«      ¬«      }t        j                   |«       y # 1 sw Y   Œ–xY w)	Nr   rM   )NrN   rZ   r  Tr  rG   )r]  rH   r<   )r   Úpyarrow.parquetr^  rP  rÛ   Úlarge_stringrQ  r=   r¦   r   r>   r  rT   ru   r?   r„   r…   )rÌ   r’   r+   rR  rP  rÄ   r‰   s          r#   Ú#test_infer_string_large_string_typez6TestParquetPyArrow.test_infer_string_large_string_types  sÂ   € ãÝ$à—‘˜#˜rŸx™xÒ(8¸"¿/¹/Ó:KÓLÐMÓNˆØ
�‰�u˜iÔ(ä×ÑÐ4°dÓ;ñ 	-Ü! )Ó,ˆF÷	-ä—<‘<ØÒ'Ð(Ü—.‘.¬"¯&©&Ô1Ü—H‘H˜c˜U¬"¯.©.Ä"Ç&Á&Ô*IÔJô
ˆô
 	×Ñ˜f hÕ/÷	-ð 	-ús   Á&DÄDc                 ó¸  — t        j                  dd«      }t        j                  d«      }|j                  t        j                  ddd«      g|j	                  d«      ¬«      }|j                  |gdg¬	«      }|j                  ||«       t        |«      }t        j                  dt        j                  ddd«      gid
¬«      }t        j                  ||«       y )Nr   ú13.0.0rA  i@  r4   ÚusrÖ  Ú	timestampr
  zdatetime64[us])r]  rH   )r(   rö   rÛ   rs   r%  rP  rQ  r   r=   r>   r„   r…   )rÌ   r’   r+   rR  ÚarrrP  rÄ   r‰   s           r#   Útest_non_nanosecond_timestampsz1TestParquetPyArrow.test_non_nanosecond_timestamps‘  s½   € ä× Ñ  ¨HÓ5ˆÜ× Ñ Ð!2Ó3ˆà�h‰hœ×)Ñ)¨$°°1Ó5Ð6¸R¿\¹\È$Ó=OˆhÓPˆØ—‘˜#˜ { m�Ó4ˆØ
�‰�u˜iÔ(Ü˜iÓ(ˆÜ—<‘<Ø¤× 1Ñ 1°$¸¸1Ó =Ð>Ð?Ø"ô
ˆô 	×Ñ˜f hÕ/r%   c           	      ó"  — t        j                  dd«      } |j                  d |j                   |j                  «        |j
                  «       «      fg«      }t        j                  dddiidddiig«      }t        |||d|id	d
dii¬«       y )Nr   r#  r7   r9   r4   r:   r5   r™   Úto_pandas_kwargsÚmaps_as_pydictsr   )rŒ   r‹   )	r(   rö   r™   Úmap_ri   rC  r=   r>   r“   )rÌ   r+   r’   r   r™   rW   s         r#   Útest_maps_as_pydictsz'TestParquetPyArrow.test_maps_as_pydicts   s›   € Ü×%Ñ% i°Ó:ˆà�—‘Ø�\�W—\‘\ . '§.¡.Ó"2°M°G·M±M³OÓDÐEÐFó
ˆô �\‰\˜E C¨ 8Ð,¨u°s¸A°hÐ.?Ð@ÓAˆÜØØØØ" FÐ+Ø+Ð.?ÀÐ-JÐKö	
r%   N)7rÔ   rÕ   rÖ   rv  rx  r}  r„  rˆ  rŒ  r’  r(   r/   r0   r   Úskipifr   ri  r¤   r�   r�   r—  rŸ  rk  rª  r¯  r¸  r¼  rÄ  rÉ  rÌ  rÒ  rÔ  rÛ  rß  rä  rê  rð  rö  rú  Úfilterwarningsr  r  r    r
   ÚNotImplementedErrorrs   r   r
  r  r  r  r  r!  r'  r,  r*   r%   r#   rm  rm  Ç  s®  „ ò
,ò
ò-ò
ò,òVò
0ð ‡[�[×ÑÙÓð?ð ó ð ‡[�[×ÑÐ0Ð0Ð9NÐÓOØ‡[�[×Ñ˜[¨3°·±Ð*=Ó>ñ
(ó ?ó Póð
(ò,ð* ‡[�[×Ññ
ó ð
ð ‡[�[×Ññ

ó ð

ð ‡[�[×ÑØ‡[�[×Ñ˜_°¨u°b¨kÓ:ñ
ó ;ó ð
ò@6ò3ò8ò8ð ‡[�[×ÑØ�c™;Ð'¨h¸Ð-Gð ó ñ	4óð	4ò,ò

ò,ò&Cò",ò Kò?ò
 ð ‡[�[×ÑÐ TÓUñ
ó Vð
ò2
ð ‡[�[×ÑØà�ˆFØˆF�L‰LØ˜Ð Ø—k‘k×'Ñ'Ø(Ø.ØGð (ó ôð ˆF�L‰Là%�H×%Ñ% d¨A¨q°!°QÓ7Ø%�H×%Ñ% d¨A¨q°!°QÓ7ðð —k‘k×'Ñ'Ø(ØLð (ó ô	ð	
óñ0,ó1ð0,ò,ò
(ò0ò(0ò0ò<0ó
r%   rm  c                   ó¶   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                  j                  d„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParquetFastParquetc                 óþ   — t        j                  d«      }|j                  d«      }|}t        j                  dd|¬«      }|j                  d «      }||d<   t        j                  dd¬«      |d	<   t        |||«       y )
NÚpytzz
US/EasternrJ   r6   rp  rr  r†  rK   Ú	timedelta)r(   rö   Útimezoner=   rV   rù   r‡  r“   )	rÌ   r1   ry   r"   r’   r3  rq  rW   ru  s	            r#   rv  z!TestParquetFastParquet.test_basic±  sq   € Ü×"Ñ" 6Ó*ˆà�]‰]˜<Ó(ˆØˆä�m‰m˜J°°bÔ9ˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÜ×,Ñ,¨W¸aÔ@ˆˆ;‰Ü˜˜Y¨Õ+r%   c           	      óŒ  — t        j                  t        d«      t        t        dd«      «      dœ«      }t        }d}ddg|_        | j                  |||||«       ddg|_        | j                  |||||«       t        j                  d	dddd«      t        j                  d	dddd«      g|_        | j                  |||||«       y )
NrB   r4   rC   rß   r+  r   r\   r]   r  )r=   r>   rR   rS   r,  r<   rÐ   rs   )rÌ   r1   r’   rW   Úerrr¡   s         r#   Útest_columns_dtypes_invalidz2TestParquetFastParquet.test_columns_dtypes_invalid½  sÄ   € Ü�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆäˆØ,ˆð ˜�VˆŒ
Ø×!Ñ! " b¨#¨s°IÔ>ð ˜fÐ%ˆŒ
Ø×!Ñ! " b¨#¨s°IÔ>ô ×Ñ˜d A q¨!¨QÓ/Ü×Ñ˜d A q¨!¨QÓ/ð
ˆŒ
ð 	×!Ñ! " b¨#¨s°IÕ>r%   c                 óÜ   — t        j                  t        j                  d«      j	                  dd«      t        d«      ¬«      j                  «       }d}| j                  ||t        ||«       y )Nr  rC   r6   r€  r;   z9Cannot create parquet dataset with duplicate column namesr�  ©rÌ   r1   r’   rW   r¡   s        r#   r„  z-TestParquetFastParquet.test_duplicate_columnsÒ  sO   € ä�\‰\œ"Ÿ)™) B›-×/Ñ/°°1Ó5¼tÀE»{ÔK×PÑPÓRˆØIˆØ×!Ñ! " b¬*°c¸9ÕEr%   c                 óª   — t        j                  dg d¢i«      }t        j                  ddt        j                  dgid¬«      }t	        ||||d¬«       y )	NrM   )TNFrE  g        r‘  rG   F)r‰   r‚   )r=   r>   rT   ru   r“   )rÌ   r1   r"   r’   rW   r‰   s         r#   Útest_bool_with_nonez*TestParquetFastParquet.test_bool_with_noneØ  sH   € Ü�\‰\˜3Ò 3Ð4Ó5ˆÜ—<‘<  s¬B¯F©F°CÐ&8Ð 9ÀÔKˆô 	˜˜Y¨°XÈ5ÖQr%   c                 óø   — t        j                  dt        j                  ddd¬«      i«      }| j                  ||t        d |«       t        j                  dg d¢i«      }d}| j                  ||t        ||«       y )NrM   Ú2013ÚMr6   rí  rŠ  z"Can't infer object conversion type)r=   r>   rè  rÐ   r‘   r:  s        r#   rŒ  z'TestParquetFastParquet.test_unsupportedß  sh   € ä�\‰\˜3¤§¡°¸SÈ!Ô LÐMÓNˆà×!Ñ! " b¬*°d¸IÔFô �\‰\˜3¢Ð.Ó/ˆØ2ˆØ×!Ñ! " b¬*°c¸9ÕEr%   c                 ó„   — t        j                  dt        j                  t        d«      «      i«      }t	        |||«       y )NrM   rB   )r=   r>   r�  rR   r“   )rÌ   r1   r’   rW   s       r#   rŸ  z'TestParquetFastParquet.test_categoricalê  s.   € Ü�\‰\˜3¤§¡¬t°E«{Ó ;Ð<Ó=ˆÜ˜˜Y¨Õ+r%   c                 óÂ   — dt        t        d«      «      i}t        j                  |«      }|j	                  ||d d¬«       t        ||dg¬«      }t        |«      dk(  sJ ‚y )NrM   r6   r4   )r$   r}   Úrow_group_offsetsrø  rù  )rR   rS   r=   r>   r   r   r  )rÌ   r1   r’   rO   rW   rÄ   s         r#   rú  z-TestParquetFastParquet.test_filter_row_groupsî  sY   € Ø”$”u˜Q“x“.Ð!ˆÜ�\‰\˜!‹_ˆØ
�‰�i¨¸ÐPQˆÔRÜ˜i¨°nÐ5EÔFˆÜ�6‹{˜aÒÐÑr%   c           
      óL   — t        |||d|j                  › d�d|id |dœ¬«       y )Nr­  z/fastparquet.parquetr¬  )r}   r¬  r¤  r®  )rÌ   r@   r¦  r§  r1   r’   s         r#   r¯  z(TestParquetFastParquet.test_s3_roundtripõ  s:   € ô 	ØØØØÐ)×.Ñ.Ð/Ð/CÐDØ*¨DÐ1Ø)-À$ÑGö	
r%   c                 óð   — ddg}|}|j                  |d|d ¬«       t        j                  j                  |«      sJ ‚dd l} |j
                  t        |«      d«      j                  }t        |«      dk(  sJ ‚y )Nrr   rn   r   ©r$   rð   r}   r   Fr5   ©	r   r•  rŠ   Úexistsr   ÚParquetFiler¤   Úcatsr  ©rÌ   ró   r1   ry   rð   rW   r   Úactual_partition_colss           r#   rÉ  z4TestParquetFastParquet.test_partition_cols_supported  s{   € à  %˜ˆØˆØ
�‰ØØ Ø)Øð	 	ô 	
ô �w‰w�~‰~˜hÔ'Ð'Ð'Ûà 7 × 7Ñ 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÒ.Ð.Ñ.r%   c                 óì   — d}|}|j                  |d|d ¬«       t        j                  j                  |«      sJ ‚dd l} |j
                  t        |«      d«      j                  }t        |«      dk(  sJ ‚y )Nrr   r   rE  r   Fr4   rF  rJ  s           r#   rÌ  z1TestParquetFastParquet.test_partition_cols_string  sw   € àˆØˆØ
�‰ØØ Ø)Øð	 	ô 	
ô �w‰w�~‰~˜hÔ'Ð'Ð'Ûà 7 × 7Ñ 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÒ.Ð.Ñ.r%   c                 óð   — ddg}|}|j                  |dd |¬«       t        j                  j                  |«      sJ ‚dd l} |j
                  t        |«      d«      j                  }t        |«      dk(  sJ ‚y )Nrr   rn   r   )r$   r}   Úpartition_onr   Fr5   rF  rJ  s           r#   Útest_partition_on_supportedz2TestParquetFastParquet.test_partition_on_supported!  s{   € à  %˜ˆØˆØ
�‰ØØ ØØ'ð	 	ô 	
ô �w‰w�~‰~˜hÔ'Ð'Ð'Ûà 7 × 7Ñ 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÒ.Ð.Ñ.r%   c                 ó    — ddg}|}d}t        j                  t        |¬«      5  |j                  |dd ||¬«       d d d «       y # 1 sw Y   y xY w)Nrr   rn   zYCannot use both partition_on and partition_cols. Use partition_cols for partitioning datarž   r   )r$   r}   rN  rð   )r(   r    r‘   r   )rÌ   ró   r1   ry   rð   rW   r¡   s          r#   Ú3test_error_on_using_partition_cols_and_partition_onzJTestParquetFastParquet.test_error_on_using_partition_cols_and_partition_on1  sa   € ð ! %˜ˆØˆð ð 	ô �]‰]œ:¨SÔ1ñ 	Ø�M‰MØØ$Ø Ø+Ø-ð ô ÷	÷ 	ñ 	ús   ¤AÁAc                 ój   — t        j                  «       }|j                  «       }t        ||||¬«       y )NrÞ  )r=   r>   r  r“   )rÌ   r1   r’   rW   r‰   s        r#   rÔ  z+TestParquetFastParquet.test_empty_dataframeD  s&   € ä�\‰\‹^ˆØ—7‘7“9ˆÜ˜˜Y¨°XÖ>r%   c                 ó¢   — d|gz  }t        j                  |d|i¬«      }|j                  «       }d|j                  _        t        ||||¬«       y )Nrò  ró  rô  r÷   rÞ  )r=   r>   r  r÷   rú   r“   )rÌ   r1   r{   r"   r’   rõ  rW   r‰   s           r#   rö  z0TestParquetFastParquet.test_timezone_aware_indexJ  sL   € ð Ð+Ð,Ñ,ˆä�\‰\ ¨>¸3Ð*?Ô@ˆà—7‘7“9ˆØ%ˆ�‰ÔÜ˜˜Y¨°XÖ>r%   c                 ó  — t        j                  |«      j                  d«       t        j                  t
        «      5  t        |d¬«       d d d «       t        j                  |«      j                  d¬«       y # 1 sw Y   Œ/xY w)Ns   breakitr   rÁ   F)Ú
missing_ok)r�   r�   Úwrite_bytesr„   rÒ   Ú	Exceptionr   Úunlink)rÌ   r’   s     r#   Ú$test_close_file_handle_on_read_errorz;TestParquetFastParquet.test_close_file_handle_on_read_errorU  sb   € Ü�‰�YÓ×+Ñ+¨JÔ7Ü×%Ñ%¤iÓ0ñ 	:Ü˜¨=Õ9÷	:ô 	�‰�YÓ×&Ñ&°%Ð&Õ8÷	:ð 	:ús   ¾A:Á:Bc                 óè   — t        j                  ddgddgdœ¬«      }t        |d«      5 }|j                  |«       d d d «       t	        ||¬«      }t        j                  ||«       y # 1 sw Y   Œ-xY w)Nr   r4   r8   r  ÚwbrÁ   )r=   r>   rb  r   r   r„   r…   )rÌ   r$   r’   rW   rQ   rÄ   s         r#   Útest_bytes_file_namez+TestParquetFastParquet.test_bytes_file_name\  sh   € ä�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�)˜TÓ"ð 	 aØ�M‰M˜!Ô÷	ô ˜i°Ô7ˆÜ
×Ñ˜f bÕ)÷		ð 	ús   ªA(Á(A1c                 ó´  — t        j                  d«       t        j                  ddgddgdœ¬«      }t        j                  t
        d¬«      5  |j                  |dd¬	«       d d d «       t        j                  |«      j                  d
«       t        j                  t
        d¬«      5  t        |dd¬	«       d d d «       y # 1 sw Y   Œ`xY w# 1 sw Y   y xY w)Nr   r   r4   r8   r  zfilesystem is not implementedrž   r7   ©r$   r¢  r\   )r(   rö   r=   r>   r    r/  r   r�   r�   rV  r   ©rÌ   r’   rW   s      r#   Útest_filesystem_notimplementedz5TestParquetFastParquet.test_filesystem_notimplementede  sº   € Ü×Ñ˜MÔ*Ü�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�]‰]Ô.Ð6UÔVñ 	MØ�M‰M˜)¨MÀeˆMÔL÷	Mô 	�‰�YÓ×+Ñ+¨FÔ3Ü�]‰]Ô.Ð6UÔVñ 	LÜ˜¨=ÀUÕK÷	Lð 	L÷		Mð 	Mú÷	Lð 	Lúó   ÁCÂ*CÃCÃCc                 ó´  — t        j                  d«       t        j                  ddgddgdœ¬«      }t        j                  t
        d¬«      5  |j                  |dd¬	«       d d d «       t        j                  |«      j                  d
«       t        j                  t
        d¬«      5  t        |dd¬	«       d d d «       y # 1 sw Y   Œ`xY w# 1 sw Y   y xY w)Nr   r   r4   r8   r  z1filesystem must be a pyarrow or fsspec FileSystemrž   r7   r^  r\   )r(   rö   r=   r>   r    r‘   r   r�   r�   rV  r   r_  s      r#   Útest_invalid_filesystemz.TestParquetFastParquet.test_invalid_filesystemo  sÂ   € Ü×Ñ˜IÔ&Ü�\‰\ a¨ V°1°a°&Ñ9Ô:ˆä�]‰]ÜÐQô
ñ 	Ið �M‰M˜)¨IÀ%ˆMÔH÷	Iô
 	�‰�YÓ×+Ñ+¨FÔ3Ü�]‰]ÜÐQô
ñ 	Hô ˜¨9ÀÕG÷	Hð 	H÷	Ið 	Iú÷	Hð 	Húra  c                 óø  — t        j                  d«      }t        j                  ddgddgdœ¬«      }t        j                  t
        d¬«      5  |j                  |d|j                  «       d	d
i¬«       d d d «       t        j                  |«      j                  d«       t        j                  t
        d¬«      5  t        |d|j                  «       d	d
i¬«       d d d «       y # 1 sw Y   ŒqxY w# 1 sw Y   y xY w)Nz
pyarrow.fsr   r4   r8   r  z8storage_options not supported with a pyarrow FileSystem.rž   r   r7   r_   )r$   r¢  r¬  r\   )r(   rö   r=   r>   r    r/  r   ÚLocalFileSystemr�   r�   rV  r   )rÌ   r’   Úpa_fsrW   s       r#   Ú.test_unsupported_pa_filesystem_storage_optionszETestParquetFastParquet.test_unsupported_pa_filesystem_storage_options~  sè   € Ü×#Ñ# LÓ1ˆÜ�\‰\ a¨ V°1°a°&Ñ9Ô:ˆä�]‰]ÜØLô
ñ 		ð �M‰MØØ Ø ×0Ñ0Ó2Ø!&¨ ð	 ô ÷			ô 	�‰�YÓ×+Ñ+¨FÔ3Ü�]‰]ÜØLô
ñ 		ô ØØ Ø ×0Ñ0Ó2Ø!&¨ õ	÷			ð 		÷		ð 		ú÷		ð 		ús   Á&C$Â; C0Ã$C-Ã0C9c           	      óø   — d}t        j                  dt        t        dd«      «      i«      }|j	                  |«       t        j                  t        |¬«      5  t        |d¬«       d d d «       y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rn   r4   rC   rž   Únumpy)rI  )	r=   r>   rR   rS   r   r(   r    r‘   r   )rÌ   r$   r’   r¡   rW   s        r#   Útest_invalid_dtype_backendz1TestParquetFastParquet.test_invalid_dtype_backend™  se   € ð%ð 	ô �\‰\˜5¤$¤u¨Q°£{Ó"3Ð4Ó5ˆØ
�‰�iÔ Ü�]‰]œ:¨SÔ1ñ 	;Ü˜°'Õ:÷	;÷ 	;ñ 	;ús   ÁA0Á0A9N)rÔ   rÕ   rÖ   rv  r8  r„  r<  rŒ  rŸ  rú  r(   r/   rk  r¯  rÉ  rÌ  rO  rQ  rÔ  rö  rY  r\  r`  rc  rg  rj  r*   r%   r#   r1  r1  °  s„   „ ò
,ò?ò*FòRò	Fò,ò ð ‡[�[×Ññ	
ó ð	
ò/ò /ò /ò ò&?ò	?ò9ò*òLòHòó6;r%   r1  )	NNNNNTFTr5   )HÚ__doc__rs   Údecimalr   r\  r   r•  r�   ri  rT   r(   Úpandas._configr   Úpandas.compatr   Úpandas.compat.pyarrowr   r   r	   r
   Úpandasr=   Úpandas._testingÚ_testingr„   Úpandas.util.versionr   Úpandas.io.parquetr   r   r   r   r   r   r'   r·   r   r-   r/   r.  Ú
pytestmarkÚfixturer    r-  r0   r$   r+   r1   r@   rX   ry   ÚnowÚUTCr5  ÚminÚmaxÚstrptimer{   r“   rœ   r¢   r¨   r«   r¯   r±   r¾   rÅ   rÇ   rÉ   rØ   rm  r1  r*   r%   r#   ú<module>r|     sN  ðÙ ã Ý Ý Û 	Û ã Û å -å -÷ó ó Ý Ý '÷õ ðÛà€MðÛàÐð ‡K�K×ÑÐSÓTØ
‡K�K×ÑØGóð€
ð €‡�àˆ�‰Øà—‘×"Ñ"Ø)Ð)Ø9ð #ó ð —‘×!Ñ!Ù&Ó(Ø;Ø ð "ó ð
ô	
ð 	ˆ�‰ØØ—+‘+×$Ñ$Ø!Ð!Ð*Dð %ó ô	
ðôñ0ó1ð0ð ‡�ñó ðð ‡�ñó ðð ‡�ñTó ðTð ‡�ñó ðð" ‡�ñó ðð. €‡�à×Ñ×Ñ˜hŸl™lÓ+Ø×Ñ×Ñ˜h×/Ñ/×3Ñ3Ó4Ø×Ñ×Ñ˜h×/Ñ/×3Ñ3Ó4Ø×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUðô
ñó
ðð Ø	ØØØØØØØóBòJ9ò =ò/ò/ò/òFò((#òV
2ò
2÷	Eñ 	EôG,�ô G,ôT
f
˜ô f
ôRq;˜Tõ q;øðU$ ò ØƒMðûð ò ØÓðús$   ÁK* Á!K8 Ë*K5Ë4K5Ë8LÌL