Ë
    ¤eh'Ä  ã                   ó  — 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 ddl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
jN                  jQ                  d«      e
jN                  jQ                  d«      gZ) e
jT                   e
jV                  de
jN                  jY                  e& xs  edd¬«      dk(  d¬«      ¬«       e
jV                  de
jN                  jY                  e# d¬«      ¬«      g¬«      d„ «       Z-e
jT                  d„ «       Z.e
jT                  d„ «       Z/e
jT                  d„ «       Z0e
jT                  d„ «       Z1e
jT                  d„ «       Z2 e
jT                  ej                  jg                  ejh                  jj                  «      ej                  jg                  ejh                  jl                  «      ej                  jg                  ejh                  jn                  «      ej                  jq                  dd «      ej                  jq                  d!d «      ej                  jq                  d"d «      ej                  jq                  d#d «      g¬«      d$„ «       Z9	 	 	 	 	 	 	 	 	 d8d%„Z:d&„ Z;d'„ Z<d(„ Z=d)„ Z>d*„ Z?d+„ Z@d,„ ZAd-„ ZBd.„ ZCd/„ ZD G d0„ d1«      ZE G d2„ d3eE«      ZF G d4„ d5eE«      ZG G d6„ d7eE«      ZHy# e$$ r dZ#Y �Œ�w xY w# e$$ r dZ&Y �Œ”w xY w)9z test parquet compat é    N)ÚDecimal)ÚBytesIO)Úusing_copy_on_write)Ú_get_option)Úis_platform_windows)Úpa_version_under11p0Úpa_version_under13p0Úpa_version_under15p0)ÚVersion)ÚFastParquetImplÚPyArrowImplÚ
get_engineÚread_parquetÚ
to_parquetTFz2ignore:DataFrame._data is deprecated:FutureWarningz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningÚfastparquetúmode.data_manager©ÚsilentÚarrayz4fastparquet is not installed or ArrayManager is used©Úreason)ÚmarksÚpyarrowúpyarrow is not installed)Úparamsc                 ó   — | j                   S ©N©Úparam©Úrequests    úZ/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/test_parquet.pyÚenginer#   ;   s   € ð& �=‰=Ðó    c                  ó:   — t         st        j                  d«       y)Nr   r   )Ú_HAVE_PYARROWÚpytestÚskip© r$   r"   Úpar*   Q   s   € åÜ�‰Ð.Ô/Ør$   c                  ó†   — t         st        j                  d«       yt        dd¬«      dk(  rt        j                  d«       y)Nzfastparquet is not installedr   Tr   r   z.ArrayManager is not supported with fastparquetr   )Ú_HAVE_FASTPARQUETr'   r(   r   r)   r$   r"   Úfpr-   X   s9   € åÜ�‰Ð2Ô3ð ô 
Ð(°Ô	6¸'Ò	AÜ�‰ÐDÔEØr$   c                  ó6   — t        j                  g d¢ddœ«      S )N©é   é   é   Úfoo©ÚAÚB)ÚpdÚ	DataFramer)   r$   r"   Ú	df_compatr9   a   s   € ä�<‰<ši¨eÑ4Ó5Ð5r$   c            
      óÎ   — t        j                  t        d«      t        t        dd«      «      t	        j
                  ddd¬«      g d¢t        j                  d	d
¬«      dœ«      } | S )NÚabcr0   é   ç      @ç      @Úfloat64©Údtype©TFTÚ20130101r2   ©Úperiods)ÚaÚbÚdÚeÚf)r7   r8   ÚlistÚrangeÚnpÚarangeÚ
date_range)Údfs    r"   Údf_cross_compatrQ   f   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	¬«      t        j                  d«      t         j                  t        j                  d«      gdœ«      S )Nr;   rF   Úc©rF   NrS   )ó   fooó   bars   baz©r3   ÚbarÚbazr0   r<   r2   é   Úu1r=   r>   r?   r@   ç       @ç      @rB   rC   rD   Ú20130103)ÚstringÚstring_with_nanÚstring_with_noneÚbytesÚunicodeÚintÚuintÚfloatÚfloat_with_nanÚboolÚdatetimeÚdatetime_with_nat)r7   r8   rK   rM   ÚnanrL   rN   ÚastyperO   Ú	TimestampÚNaTr)   r$   r"   Údf_fullro   x   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¸!Ô<ä—‘˜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_listrq   �   s   € ð �=‰=Ðr$   c
                 óà   ‡ ‡‡‡‡‡‡‡— ‰xs ddiŠ‰xs i Š‰€‰ Š|r
|‰d<   |‰d<   ˆˆˆˆ ˆˆˆˆfd„}
‰€&t        j                  «       5 Š |
|	«       ddd«       y |
|	«       y# 1 sw Y   yxY w)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
    ÚcompressionNr#   c                 ó¾   •— t        | «      D ]N  } ‰j                  ‰fi ‰
¤Ž t        ‰fi ‰	¤Ž}d‰v rd ‰j                  d<   t	        j
                  ‰|‰‰‰¬«       ŒP y )Nr`   ©r0   r`   )Úcheck_namesÚ
check_likeÚcheck_dtype)rL   r   r   ÚlocÚtmÚassert_frame_equal)ÚrepeatÚ_Úactualrx   rw   rv   rP   Ú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$   )rz   Úensure_clean)rP   r#   r€   r‚   r�   r   rv   rw   rx   r|   rƒ   s   ` ```````  r"   Úcheck_round_tripr…   Ÿ   sˆ   ÿ€ ðD  Ò8 M°4Ð#8€LØÒ# €KàÐØˆáØ!'ˆ�XÑØ &ˆ�HÑ÷ó ð €|Ü�_‰_Óð 	 $Ù�FŒO÷	ð 	ñ 	��÷	ð 	ús   Á		A$Á$A-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'©Úmatchr3   rX   )r'   ÚraisesÚ
ValueErrorr…   )r9   Úmsgs     r"   Útest_invalid_enginer•   ñ   s6   € Ø
:€CÜ	�‰”z¨Ô	-ñ 2Ü˜ E¨5Ô1÷2÷ 2ñ 2ús   ž5µ>c                 óp   — t        j                  dd«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Núio.parquet.enginer   ©r7   Úoption_contextr…   )r9   r*   s     r"   Útest_options_pyrš   ÷   s2   € ô 
×	Ñ	Ð.°	Ó	:ñ $Ü˜Ô#÷$÷ $ñ $úó   —,¬5c                 óp   — t        j                  dd«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nr—   r   r˜   )r9   r-   s     r"   Útest_options_fpr�   þ   s2   € ô 
×	Ñ	Ð.°Ó	>ñ $Ü˜Ô#÷$÷ $ñ $úr›   c                 óp   — t        j                  dd«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nr—   Úautor˜   )r9   r-   r*   s      r"   Útest_options_autor      s2   € ô 
×	Ñ	Ð.°Ó	7ñ $Ü˜Ô#÷$÷ $ñ $ú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Ÿ   )Ú
isinstancer   r   r   r7   r™   )r-   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Ÿ   z%Missing optional dependency .pyarrow.z. or newer of .fastparquet.z)Missing optional dependency .fastparquet.)Ú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Ô"÷#ð #ð <ˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ñ Ø/°
¨|Ð;VÐWˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ð #ð @ˆEÜ—‘œ{°%Ô8ñ #Ü˜6Ô"÷#ð #ð# #1ˆ>÷#ð #ú÷#ð #ú÷
#ð #ú÷#ð #ús0   Ã E2Ã2E>Ä)F
ÅFÅ2E;Å>FÆ
FÆFc                 ó  — | }t        j                  «       5 }|j                  ||d ¬«       t        ||¬«      }t        j                  ||«       t        ||ddg¬«      }t        j                  ||ddg   «       d d d «       y # 1 sw Y   y xY w©N)r#   rs   ©r#   rF   rH   )r#   Úcolumns©rz   r„   r   r   r{   ©rQ   r*   r-   rP   r€   Úresults         r"   Útest_cross_engine_pa_fpr¸   K  s‚   € ð 
€BÜ	�‰Ó	ð 6˜dØ
�‰�d 2°4ˆÔ8ä˜d¨2Ô.ˆÜ
×Ñ˜f bÔ)ä˜d¨2¸¸S°zÔBˆÜ
×Ñ˜f b¨#¨s¨¡nÔ5÷6÷ 6ñ 6úó   —A#BÂBc                 ó  — | }t        j                  «       5 }|j                  ||d ¬«       t        ||¬«      }t        j                  ||«       t        ||ddg¬«      }t        j                  ||ddg   «       d d d «       y # 1 sw Y   y xY wr²   rµ   r¶   s         r"   Útest_cross_engine_fp_par»   Y  s€   € à	€BÜ	�‰Ó	ð 6˜dØ
�‰�d 2°4ˆÔ8ä˜d¨2Ô.ˆÜ
×Ñ˜f bÔ)ä˜d¨2¸¸S°zÔBˆÜ
×Ñ˜f b¨#¨s¨¡nÔ5÷6÷ 6ñ 6úr¹   c                 ó  — t        j                  dg d¢i«      }d}t        j                  «       5 }t        j                  t
        |dd¬«      5  |j                  || «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrF   r/   zqStarting with pandas version 3.0 all arguments of to_parquet except for the argument 'path' will be keyword-only.F)r‘   Úcheck_stacklevelÚraise_on_extra_warnings)r7   r8   rz   r„   Úassert_produces_warningÚFutureWarningr   )r#   rP   r”   r€   s       r"   Ú!test_parquet_pos_args_deprecationrÁ   f  s†   € ä	�‰�sšIÐ&Ó	'€Bð	1ð ô 
�‰Ó	ð (˜dÜ×'Ñ'ÜØØ"Ø$)ô	
ñ 	(ð �M‰M˜$ Ô'÷	(÷(ð (÷	(ð 	(ú÷(ð (ús#   °A>ÁA2Á!A>Á2A;	Á7A>Á>Bc                   ó‚   — e Zd Zd„ Zd„ Zej                  j                  ej                  j                  d„ «       «       Z	y)ÚBasec                 óÌ   — t        j                  «       5 }t        j                  ||¬«      5  t	        |||d ¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr�   ©rs   )rz   r„   r'   r’   r   )ÚselfrP   r#   ÚexcÚerr_msgr€   s         r"   Úcheck_error_on_writezBase.check_error_on_writex  sY   € ä�_‰_Óð 	? $Ü—‘˜s¨'Ô2ñ ?Ü˜2˜t V¸Õ>÷?÷	?ð 	?÷?ð ?ú÷	?ð 	?ús!   •A­A½AÁA	ÁAÁA#c                 óÈ   — t        j                  «       5 }t        j                  |«      5  t        |||d ¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)NrÅ   )rz   r„   Úexternal_error_raisedr   )rÆ   rP   r#   rÇ   r€   s        r"   Úcheck_external_error_on_writez"Base.check_external_error_on_write~  sY   € ä�_‰_Óð 	? $Ü×)Ñ)¨#Ó.ñ ?Ü˜2˜t V¸Õ>÷?÷	?ð 	?÷?ð ?ú÷	?ð 	?ús!   •A«A»AÁA	ÁAÁA!c                 ó$  — |dk7  rt        j                  |«       t         |dddd«      d¬«      5 }|j                  |j	                  «       ¬«       t        |j                  «      }d d d «       t        j                  |«       y # 1 sw Y   Œ xY w)	NrŸ   ÚioÚdataÚparquetzsimple.parquetÚrb)Úmode)Úcontent)	r'   ÚimportorskipÚopenÚserve_contentÚreadr   Úurlrz   r{   )rÆ   Ú
httpserverÚdatapathr9   r#   rJ   rP   s          r"   Útest_parquet_read_from_urlzBase.test_parquet_read_from_url„  s   € ð �VÒÜ×Ñ Ô'Ü‘(˜4 ¨Ð4DÓEÈDÔQð 	.ÐUVØ×$Ñ$¨Q¯V©V«XÐ$Ô6Ü˜jŸn™nÓ-ˆB÷	.ô 	×Ñ˜b )Õ,÷	.ð 	.ús   ±6BÂBN)
Ú__name__Ú
__module__Ú__qualname__rÉ   rÌ   r'   ÚmarkÚnetworkÚ
single_cpurÛ   r)   r$   r"   rÃ   rÃ   w  s<   „ ò?ò?ð ‡[�[×ÑØ‡[�[×Ññ-ó ó ñ-r$   rÃ   c                   óð   — 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y)Ú	TestBasicc                 óÊ   — t        j                  g d¢«      ddt        j                  d«      t        j                  g d¢«      fD ]  }d}| j                  ||t        |«       Œ y )Nr/   r0   r3   rC   z+to_parquet only supports IO with DataFrames)r7   ÚSeriesrm   rM   r   rÉ   r“   )rÆ   r#   Úobjr”   s       r"   Ú
test_errorzTestBasic.test_error�  s[   € ä�I‰I’iÓ ØØÜ�L‰L˜Ó$Ü�H‰H’YÓð
ò 	DˆCð @ˆCØ×%Ñ% c¨6´:¸sÕCñ	Dr$   c           	      ó–   — t        j                  t        d«      t        t        dd«      «      dœ«      }ddg|_        t        ||«       y )Nr;   r0   r<   ©r_   rd   r3   rX   )r7   r8   rK   rL   r´   r…   )rÆ   r#   rP   s      r"   Útest_columns_dtypeszTestBasic.test_columns_dtypes›  s;   € Ü�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆð ˜U�^ˆŒ
Ü˜˜VÕ$r$   rs   )NÚgzipÚsnappyÚbrotlic                 óV   — t        j                  dg d¢i«      }t        ||d|i¬«       y )Nr5   r/   rs   ©r‚   ©r7   r8   r…   )rÆ   r#   rs   rP   s       r"   Útest_compressionzTestBasic.test_compression¢  s&   € ä�\‰\˜3¢	Ð*Ó+ˆÜ˜˜V°=À+Ð2NÖOr$   c           	      óÐ   — t        j                  t        d«      t        t        dd«      «      dœ«      }t        j                  dt        d«      i«      }t	        |||ddgi¬«       y )Nr;   r0   r<   ré   r_   r´   ©r   r�   ©r7   r8   rK   rL   r…   )rÆ   r#   rP   r   s       r"   Útest_read_columnszTestBasic.test_read_columns§  sS   € ä�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆä—<‘< ¬4°«;Ð 7Ó8ˆÜØ� ¸	ÀHÀ:Ð7Nö	
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 )Nr<   Úaabb)rd   Úpartrd   r   r0   Úpartition_colsrø   )rø   ú==rF   )Úfiltersr´   )r€   r   r‚   r�   r|   rô   )rÆ   r#   Útmp_pathrP   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                 ó   — |dk7  }t        j                  dg d¢i«      }t        ||«       g d¢t        j                  dd¬«      t	        d«      g d	¢g}|D ]Q  }||_        t        |t         j                  «      r |j
                  j                  d «      |_        t        |||¬
«       ŒS g d¢|_        d|j
                  _	        t        ||«       y )Nr   r5   r/   )r1   r2   r<   rC   r2   rD   r;   )r0   r2   r<   )rv   )r   r0   r1   r3   )
r7   r8   r…   rO   rK   Úindexr¢   ÚDatetimeIndexÚ
_with_freqÚname)rÆ   r#   rv   rP   Úindexesrÿ   s         r"   Útest_write_indexzTestBasic.test_write_indexÃ  s·   € Ø Ñ-ˆä�\‰\˜3¢	Ð*Ó+ˆÜ˜˜VÔ$ò Ü�M‰M˜*¨aÔ0Ü�‹KÚð	
ˆð ò 	BˆEØˆBŒHÜ˜%¤×!1Ñ!1Ô2ØŸ8™8×.Ñ.¨tÓ4�”Ü˜R °[ÖAð		Bò ˆŒØˆ�‰ŒÜ˜˜VÕ$r$   c                 ó¢   — |}t        j                  dg d¢i«      }t         j                  j                  g d¢«      }||_        t        ||«       y )Nr5   r/   ©)rF   r0   )rF   r1   )rG   r0   )r7   r8   Ú
MultiIndexÚfrom_tuplesrÿ   r…   )rÆ   r*   r#   rP   rÿ   s        r"   Útest_write_multiindexzTestBasic.test_write_multiindexÛ  s@   € àˆä�\‰\˜3¢	Ð*Ó+ˆÜ—‘×)Ñ)Ò*HÓIˆØˆŒÜ˜˜VÕ$r$   c           	      óÆ  — |}t        j                  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   ¬«       Œ/ y )Nz01-Jan-2018z01-Dec-2018ÚMS)Úfreqr1   r2   ÚABC©r´   ÚLevel1ÚLevel2ÚlevelÚdate)rŒ   r´   r5   r6   ©r�   r   )r7   rO   r8   rM   ÚrandomÚdefault_rngÚstandard_normalÚlenrK   r  Úfrom_productÚcopyrÿ   r…   )rÆ   r*   r#   ÚdatesrP   Úindex1Úindex2rÿ   s           r"   Útest_multiindex_with_columnsz&TestBasic.test_multiindex_with_columnsä  sá   € ØˆÜ—‘˜m¨]ÀÔFˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°a¼#¸e»*±nÀaÐ5HÓIÜ˜“Kô
ˆô —‘×+Ñ+Ø˜Ð! 5Ð)°'¸6Ð1Bð ,ó 
ˆð —‘ 4�Ó(ˆØ˜fÐ%ò 	ˆEØˆBŒHä˜R Ô(ÜØ�F¨°S¸#°JÐ(?È"ÈcÐSVÈZÉ.öñ		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 )Nr/   )ÚqÚrÚs)rF   rG   F)rs   rÿ   T)Údrop©r‚   r   )ÚzyxÚwvuÚtsr©rÿ   ©rX   rX   rY   rY   r3   r3   Úquxr)  ©ÚoneÚtwor+  r,  r+  r,  r+  r,  é   )r+  r,  )r7   r8   Úreset_indexr…   rK   rL   )rÆ   r#   rP   r‚   r   ÚarraysÚis          r"   Útest_write_ignoring_indexz#TestBasic.test_write_ignoring_index÷  sÕ   € ô �\‰\¢	²Ñ@ÓAˆà'+°eÑ<ˆð —>‘> t�>Ó,ˆä˜˜V°,ÈÕRô �\‰\Ú¢/Ñ2Ò:Oô
ˆô 	˜˜V°,ÈÕRò EÚDð
ˆô �\‰\Üœ˜q›“N¼¸a»Ö+A°1¨QªBÒ+AÑBÈ&ô
ˆð —>‘> t�>Ó,ˆÜ˜˜V°,ÈÖRùò	 ,Bs   Â)
C 
c                 ó,  — 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  r1   )r<   r2   r  r   úColumn name must be a stringr   )r7   r  r  r8   rM   r  r  r  rÉ   Ú	TypeErrorr…   )rÆ   r#   Ú
mi_columnsrP   s       r"   Útest_write_column_multiindexz&TestBasic.test_write_column_multiindex  s   € ä—]‘]×.Ñ.Ò/MÓNˆ
Ü�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àjô
ˆð �]Ò"Ø×%Ñ%Ø�FœIÐ'Eõð �yÒ Ü˜R Õ(ð !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(  )r0   r1   r0   r1   r0   r1   r0   r1   r1   ©r-  r-  r  r  r  r   zColumn namer   )r7   r8   rM   r  r  r  r´   rŒ   rÉ   r“   r…   ©rÆ   r#   r/  rP   s       r"   Ú&test_write_column_multiindex_nonstringz0TestBasic.test_write_column_multiindex_nonstring%  s‡   € ò
 EÚ$ð
ˆô �\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð % hÐ/ˆ�
‰
ÔØ�]Ò"Ø×%Ñ% b¨&´*¸mÕLØ�yÒ Ü˜R Õ(ð !r$   c                 óÜ   — |}g d¢g d¢g}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }ddg|j                  _        t        ||«       y )Nr(  r*  r1   r8  r  Ú	ColLevel1Ú	ColLevel2)	r7   r8   rM   r  r  r  r´   rŒ   r…   ©rÆ   r*   r#   r/  rP   s        r"   Ú#test_write_column_multiindex_stringz-TestBasic.test_write_column_multiindex_string6  se   € ð ˆò EÚDð
ˆô �\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð (¨Ð5ˆ�
‰
Ôä˜˜VÕ$r$   c                 óÐ   — |}g d¢}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }d|j                  _        t        ||«       y )N)rX   rY   r3   r)  r1   ©r-  r<   r  Ú	StringCol)	r7   r8   rM   r  r  r  r´   r  r…   r>  s        r"   Útest_write_column_index_stringz(TestBasic.test_write_column_index_stringG  sT   € ð ˆò .ˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð &ˆ�
‰
Œä˜˜VÕ$r$   c                 ó  — g d¢}t        j                  t        j                  j	                  d«      j                  d«      |¬«      }d|j                  _        |dk(  r| j                  ||t        d«       y t        ||«       y )N©r0   r1   r2   r<   r1   rA  r  ÚNonStringColr   r3  )r7   r8   rM   r  r  r  r´   r  rÉ   r4  r…   r9  s       r"   Ú!test_write_column_index_nonstringz+TestBasic.test_write_column_index_nonstringU  so   € ò ˆÜ�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfô
ˆð )ˆ�
‰
ŒØ�]Ò"Ø×%Ñ%Ø�FœIÐ'Eõô ˜R Õ(r$   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œ«      }t        j                  «       5 }|j                  ||«       t        ||¬«      }t        ||d¬«      }d d 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 # 1 sw Y   �Œ1xY w)Nzpyarrow.parquetr   z.Fastparquet nullable dtype support is disabledr   ©r0   r1   r2   NÚint64Úuint8)rF   rG   rS   N)TFTNrE  )ç      ð?r\   r]   NÚfloat32r?   )rF   rG   rS   rH   rI   rJ   Úgr³   Únumpy_nullable©r#   Údtype_backendrF   ÚInt64r@   ÚUInt8r_   ÚbooleanÚFloat32ÚFloat64rS   r0   )Úaxis)r'   rÔ   rß   ÚxfailÚapplymarkerr   Útabler   rz   r„   Úwrite_tabler   rA   rM   r7   r8   r"  r{   )
rÆ   r#   r!   Úpqrß   rZ  r€   Úresult1Úresult2r   s
             r"   Útest_dtype_backendzTestBasic.test_dtype_backende  sê  € Ü× Ñ Ð!2Ó3ˆà�]Ò"ô —;‘;×$Ñ$ØGð %ó ˆDð ×Ñ Ô%ä—‘ä—]‘]¢?°GÓ<Ü—]‘]¢?°GÓ<Ü—]‘]Ò#8Ó9Ü—]‘]Ò#<Ó=ä—]‘]¢<°Ó9ä—]‘]Ò#8¸)ÓDÜ—]‘]Ò#8¸)ÓDñ
ó
ˆô �_‰_Óð 	X $à�N‰N˜5 $Ô'Ü" 4°Ô7ˆGÜ" 4°ÐFVÔWˆG÷		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Õ0÷/	Xñ 	Xús   Ä.I2É2I<rA   )	rR  rS  rT  Úobjectzdatetime64[ns, UTC]rf   z	period[D]rV  r_   c                 óä   — t        j                  dt        j                  g |¬«      i«      }d }|dk(  r,t        j                  dt        j                  g d¬«      i«      }t        ||ddi|¬«       y )NÚvaluer@   rf   rV  rQ  rO  r  )r7   r8   r   r…   )rÆ   r*   rA   rP   r   s        r"   Útest_read_empty_arrayzTestBasic.test_read_empty_array–  sr   € ô  �\‰\àœŸ™ "¨EÔ2ðó
ˆð ˆØ�GÒÜ—|‘|àœRŸX™X b°	Ô:ðóˆHô
 	Ø� Ð2BÐ CÈhö	
r$   N)rÜ   rÝ   rÞ   rç   rê   r'   rß   Úparametrizerñ   rõ   rý   r  r	  r  r1  r6  r:  r?  rC  rG  r_  rc  r)   r$   r"   rã   rã   �  s    „ ò	Dò%ð ‡[�[×Ñ˜]Ò,NÓOñPó PðPò
ò
ò&%ò0%òò&Sò@)ò)ò"%ò"%ò)ò /1ðb ‡[�[×ÑØò
	
óñ
óñ
r$   rã   c                   ó   — 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&d$„ Z'd%„ Z(d&„ Z)d'„ Z*d(„ Z+d)„ Z,d*„ Z-e
j                  j                  e.d+¬	«      d,„ «       Z/d-„ Z0y.)/ÚTestParquetPyArrowc                 óŠ   — |}t        j                  ddd¬«      }|j                  d «      }||d<   g d¢|d<   t        ||«       y )NrC   r2   úEurope/Brussels©rE   ÚtzÚdatetime_tz©TNTÚbool_with_none)r7   rO   r  r…   )rÆ   r*   ro   rP   Údtis        r"   Ú
test_basiczTestParquetPyArrow.test_basic¹  sI   € Øˆô �m‰m˜J°Ð6GÔHˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÚ1ˆÐÑä˜˜RÕ r$   c                 ón   — |}t        j                  ddd¬«      |d<   t        |||ddg   dddgi¬	«       y )
NrC   r2   rh  ri  rk  r_   rd   r´   ró   )r7   rO   r…   )rÆ   r*   ro   rP   s       r"   Útest_basic_subset_columnsz,TestParquetPyArrow.test_basic_subset_columnsÄ  sI   € ð ˆäŸM™M¨*¸aÐDUÔVˆˆ=ÑäØØØ˜ 5Ð)Ñ*Ø" X¨uÐ$5Ð6ö		
r$   c                 óâ   — |j                  |¬«      }t        |t        «      sJ ‚t        |«      }t	        |«      }|j                  «       }d |j                  d<   t        j                  ||«       y )Nr³   ru   )	r   r¢   rb   r   r   r  ry   rz   r{   )rÆ   r*   ro   Ú	buf_bytesÚ
buf_streamÚresr   s          r"   Ú*test_to_bytes_without_path_or_buf_providedz=TestParquetPyArrow.test_to_bytes_without_path_or_buf_providedÒ  sc   € à×&Ñ&¨bÐ&Ó1ˆ	Ü˜)¤UÔ+Ð+Ð+ä˜YÓ'ˆ
Ü˜:Ó&ˆà—<‘<“>ˆØ-1ˆ�‰Ð)Ñ*Ü
×Ñ˜c 8Õ,r$   c                 óÖ   — t        j                  t        j                  d«      j	                  dd«      t        d«      ¬«      j                  «       }| j                  ||t        d«       y )Né   r<   r2   Úaaar  zDuplicate column names found©	r7   r8   rM   rN   ÚreshaperK   r  rÉ   r“   ©rÆ   r*   rP   s      r"   Útest_duplicate_columnsz)TestParquetPyArrow.test_duplicate_columnsÞ  sI   € ä�\‰\œ"Ÿ)™) B›-×/Ñ/°°1Ó5¼tÀE»{ÔK×PÑPÓRˆØ×!Ñ! " b¬*Ð6TÕUr$   c                 ót   — t        j                  dt        j                  dd¬«      i«      }t        ||«       y )NrF   ú1 dayr2   rD   )r7   r8   Útimedelta_ranger…   r|  s      r"   Útest_timedeltaz!TestParquetPyArrow.test_timedeltaã  s,   € Ü�\‰\˜3¤× 2Ñ 2°7ÀAÔ FÐGÓHˆÜ˜˜RÕ r$   c                 óx   — t        j                  dg d¢i«      }| j                  ||t        j                  «       y )NrF   ©rF   r0   r\   )r7   r8   rÌ   r   ÚArrowExceptionr|  s      r"   Útest_unsupportedz#TestParquetPyArrow.test_unsupportedç  s/   € ä�\‰\˜3¢Ð.Ó/ˆð 	×*Ñ*¨2¨r´7×3IÑ3IÕJr$   c                 óè   — t        j                  ddt         j                  ¬«      }t        j                  |dg¬«      }t
        r"| j                  ||t        j                  «       y t        ||«       y )Nr1   é
   r@   Úfp16©rÏ   r´   )
rM   rN   Úfloat16r7   r8   r
   rÌ   r   r„  r…   )rÆ   r*   rÏ   rP   s       r"   Útest_unsupported_float16z+TestParquetPyArrow.test_unsupported_float16î  sQ   € ô �y‰y˜˜B¤b§j¡jÔ1ˆÜ�\‰\˜t¨f¨XÔ6ˆÝØ×.Ñ.¨r°2´w×7MÑ7MÕNä˜R Õ$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                 ó¼  — t        j                  ddt         j                  ¬«      }t        j                  |dg¬«      }t        j                  «       5 } ||«      }t        j                  t        j                  «      5  |j                  ||¬«       d d d «       t        j                  j                  |«      rJ ‚	 d d d «       y # 1 sw Y   Œ4xY w# 1 sw Y   y xY w)Nr1   r‡  r@   rˆ  r‰  )r€   r#   )rM   rN   rŠ  r7   r8   rz   r„   rË   r   r„  r   Úosr€   Úisfile)rÆ   r*   rŒ  rÏ   rP   Úpath_strr€   s          r"   Ú test_unsupported_float16_cleanupz3TestParquetPyArrow.test_unsupported_float16_cleanupø  s®   € ô �y‰y˜˜B¤b§j¡jÔ1ˆÜ�\‰\˜t¨f¨XÔ6ˆä�_‰_Óð 	, (Ù˜XÓ&ˆDÜ×)Ñ)¬'×*@Ñ*@ÓAñ 4Ø—‘ 4°�Ô3÷4ä—w‘w—~‘~ dÔ+Ð+Ð+Ð+÷		,ð 	,÷4ð 4ú÷	,ð 	,ús$   Á,CÁ?CÂ)CÃC	ÃCÃCc                 ó&  — t        j                  «       }t        j                  t        d«      «      |d<   t        j                  g d¢t        j                  g d¢«      ¬«      |d<   t        j                  g d¢g d¢d	¬
«      |d<   t        ||«       y )NÚabcdefrF   )rX   r3   r3   rX   NrX   rW   r@   rG   )rF   rG   rS   rF   rS   rG   )rG   rS   rH   T)Ú
categoriesÚorderedrS   )r7   r8   ÚCategoricalrK   ÚCategoricalDtyper…   r|  s      r"   Útest_categoricalz#TestParquetPyArrow.test_categorical  sq   € ä�\‰\‹^ˆÜ—.‘.¤ h£Ó0ˆˆ3‰ô —.‘.Ú5Ü×%Ñ%Ò&;Ó<ô
ˆˆ3‰ô —.‘.Ú*²ÐPTô
ˆˆ3‰ô 	˜˜RÕ 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Æ   r9   Ús3_public_bucketr*   Ús3sorš  Ús3Úkws           r"   Útest_s3_roundtrip_explicit_fsz0TestParquetPyArrow.test_s3_roundtrip_explicit_fs   sW   € ä×"Ñ" 6Ó*ˆØˆT×ÑÑ& Ñ&ˆØ˜BÐˆÜØØØ$×)Ñ)Ð*Ð*:Ð;ØØö	
r$   c                 óH   — d|i}t        ||d|j                  › d�||¬«       y )NÚstorage_optionsús3://rœ  r�  ©r…   r  )rÆ   r9   rŸ  r*   r   s        r"   Útest_s3_roundtripz$TestParquetPyArrow.test_s3_roundtrip-  s7   € ð " 4Ð(ˆÜØØØÐ)×.Ñ.Ð/Ð/?Ð@ØØö	
r$   Úpartition_colr5   c                 ó8  — 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ù   rs   r¥  Tr0   )r   r€   r�   r‚   rw   r|   )
r'   rÔ   r  rl   ÚdictÚfromkeysrM   Úint32r…   r  )rÆ   r9   rŸ  r*   r©  r   Úexpected_dfÚpartition_col_types           r"   Útest_s3_roundtrip_for_dirz,TestParquetPyArrow.test_s3_roundtrip_for_dir9  sª   € ô 	×Ñ˜FÔ#à—n‘nÓ&ˆñ Ø%×,Ñ,¬T¯]©]¸=Ì"Ï(É(Ó-SÓTˆKØ!+Ðà)4°]Ñ)C×)JÑ)JØ"ó*ˆK˜Ñ&ô 	ØØØ ØÐ)×.Ñ.Ð/¨|Ð<Ø*¨DÐ1à"/Ø#Ø#'ñð
 Øö	
r$   c                 ó¦   — t        j                  d«       t        «       }|j                  |«       t	        |«      }t        j                  ||«       y )Nr   )r'   rÔ   r   r   r   rz   r{   )rÆ   r9   ÚbufferÚdf_from_bufs       r"   Útest_read_file_like_obj_supportz2TestParquetPyArrow.test_read_file_like_obj_support`  s?   € Ü×Ñ˜IÔ&Ü“ˆØ×Ñ˜VÔ$Ü" 6Ó*ˆÜ
×Ñ˜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Æ   r9   Úmonkeypatchs      r"   Útest_expand_userz#TestParquetPyArrow.test_expand_userg  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 )Nrh   rd   ©rù   rs   ©r   rŽ   r   Úshape)rÆ   rü   r*   ro   rù   rP   s         r"   Útest_partition_cols_supportedz0TestParquetPyArrow.test_partition_cols_supportedp  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 )Nrh   r¿  rÀ  )rÆ   rü   r*   ro   rù   Úpartition_cols_listrP   s          r"   Útest_partition_cols_stringz-TestParquetPyArrow.test_partition_cols_stringx  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$   r_   zpathlib.Path)Úidsc                 ó�   — d}|g}|} ||«      }|j                  ||¬«       t        |«      j                  |j                  k(  sJ ‚y )Nr6   )rù   )r   r   rÁ  )	rÆ   rü   r*   r9   rŒ  rù   rÄ  rP   r€   s	            r"   Útest_partition_cols_pathlibz.TestParquetPyArrow.test_partition_cols_pathlib�  sO   € ð ˆØ-Ð.ÐØˆá˜Ó"ˆØ
�‰�dÐ+>ˆÔ?Ü˜DÓ!×'Ñ'¨2¯8©8Ò3Ð3Ñ3r$   c                 óJ   — t        j                  g g ¬«      }t        ||«       y )N)rÿ   r´   rð   r|  s      r"   Útest_empty_dataframez'TestParquetPyArrow.test_empty_dataframe�  s   € ä�\‰\ ¨BÔ/ˆÜ˜˜RÕ 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Ç  r0   )Útyper‹   r#  )	r   r7   r8   r‹   ÚfieldÚbool_rl   rh   r…   )rÆ   r*   r   rP   r‹   Úout_dfs         r"   Útest_write_with_schemaz)TestParquetPyArrow.test_write_with_schema”  sc   € Ûä�\‰\˜3  A ˜-Ó(ˆØ�—‘  §¡¨s¸¸¿¹»Ô!IÐ JÓKˆØ—‘œ4“ˆÜ˜˜R¨x¸Ð.@È6ÖRr$   c                 óv  — t        j                  d«       t        j                  t        j                  g d¢d¬«      t        j                  g d¢d¬«      t        j                  g d¢d¬«      dœ«      }t        ||«       t        j                  d	t        j                  g d
¢d¬«      i«      }t        ||«       y )Nr   r/   rR  r@   ÚUInt32rT   r_   ©rF   rG   rS   rF   rI  )r'   rÔ   r7   r8   rå   r…   r|  s      r"   Ú test_additional_extension_arraysz3TestParquetPyArrow.test_additional_extension_arraysœ  s„   € ô 	×Ñ˜IÔ&Ü�\‰\ä—Y‘Yšy°Ô8Ü—Y‘Yšy°Ô9Ü—Y‘YÒ/°xÔ@ñó
ˆô 	˜˜RÔ ä�\‰\˜3¤§	¡	ª/ÀÔ IÐJÓKˆÜ˜˜RÕ r$   c           
      ó"  — t        j                  d«       t        j                  dt        j                  g d¢d¬«      i«      }t        j
                  d|«      5  t        |||j                  d|› d�«      ¬	«       d d d «       y # 1 sw Y   y xY w)
Nr   rF   rT   ústring[pyarrow]r@   Ústring_storagezstring[ú]©r   )r'   rÔ   r7   r8   rå   r™   r…   rl   )rÆ   r*   rÚ  rP   s       r"   Ú test_pyarrow_backed_string_arrayz3TestParquetPyArrow.test_pyarrow_backed_string_array¬  sz   € ä×Ñ˜IÔ&Ü�\‰\˜3¤§	¡	Ò*:ÐBSÔ TÐUÓVˆÜ×ÑÐ/°Ó@ñ 	VÜ˜R ¨b¯i©i¸'À.ÐAQÐQRÐ8SÓ.TÕU÷	V÷ 	Vñ 	Vús   Á"BÂBc                 óH  — 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   r0   )r0   r1   )r2   r<   z
2012-01-01r2   ÚD)rE   r  r<   )rS   rH   rI   )
r'   rÔ   r7   r8   ÚIntervalIndexr  Úperiod_rangeÚfrom_breaksrO   r…   r|  s      r"   Útest_additional_extension_typesz2TestParquetPyArrow.test_additional_extension_types³  sz   € ô 	×Ñ˜IÔ&Ü�\‰\ä×%Ñ%×1Ñ1Ò2JÓKÜ—_‘_ \¸1À3ÔGä×%Ñ%×1Ñ1Ü—M‘M ,¸ÀÔDóñ	ó	
ˆô 	˜˜RÕ r$   c                 ó‚   — d}t        j                  dt        j                  ddd¬«      i«      }t        ||d|i¬«       y )	Nz2.6rF   z
2017-01-01Ú1nsr‡  ©r  rE   Úversionrï   )r7   r8   rO   r…   )rÆ   r*   ÚverrP   s       r"   Útest_timestamp_nanosecondsz-TestParquetPyArrow.test_timestamp_nanosecondsÃ  s;   € ð ˆÜ�\‰\˜3¤§¡¨lÀÐPRÔ SÐTÓUˆÜ˜˜R¨y¸#Ð.>Ö?r$   c                 ó
  — |j                   t        j                  j                  k7  r/|j	                  t
        j                  j                  d¬«      «       d|gz  }t        j                  |d|i¬«      }t        ||d¬«       y )Nzitemporary skip this test until it is properly resolved: https://github.com/pandas-dev/pandas/issues/37286r   é   Úindex_as_col©rÿ   rÏ   F)rx   )Útzinfori   ÚtimezoneÚutcrY  r'   rß   rX  r7   r8   r…   )rÆ   r!   r*   rq   ÚidxrP   s         r"   Útest_timezone_aware_indexz,TestParquetPyArrow.test_timezone_aware_indexË  sz   € Ø#×*Ñ*¬h×.?Ñ.?×.CÑ.CÒCØ×ÑÜ—‘×!Ñ!ðHð "ó ôð Ð+Ð,Ñ,ˆÜ�\‰\ ¨>¸3Ð*?Ô@ˆô 	˜˜R¨UÖ3r$   c                 ó6  — t        j                  d«       t        j                  dt	        t        d«      «      i«      }t        j                  «       5 }|j                  ||¬«       t        ||dg¬«      }d d d «       t        «      dk(  sJ ‚y # 1 sw Y   ŒxY w)Nr   rF   r2   r³   ©rF   rú   r   ©rû   r0   )r'   rÔ   r7   r8   rK   rL   rz   r„   r   r   r  )rÆ   r*   rP   r€   r·   s        r"   Útest_filter_row_groupsz)TestParquetPyArrow.test_filter_row_groupsá  s…   € ä×Ñ˜IÔ&Ü�\‰\˜3¤¤U¨1£X£Ð/Ó0ˆÜ�_‰_Óð 	F $Ø�M‰M˜$ rˆMÔ*Ü! $¨°^Ð4DÔEˆF÷	Fô �6‹{˜aÒÐÑ÷	Fð 	Fús   Á#BÂBc                 ó  — t        j                  t        j                  j	                  d«      j                  d«      g d¢¬«      }t        j                  «       5 }|j                  ||¬«       t        ||«      }d d d «       |r;t        j                  t         j                  j                  j                  «      sJ ‚y t        j                  t         j                  j                  j                  «      sJ ‚y # 1 sw Y   Œ�xY w)Nr1   )r‡  r2   )r5   r6   ÚCr  r³   )r7   r8   rM   r  r  r  rz   r„   r   r   r¢   Ú_mgrÚcoreÚ	internalsÚArrayManagerÚBlockManager)rÆ   r*   Úusing_array_managerrP   r€   r·   s         r"   Útest_read_parquet_managerz,TestParquetPyArrow.test_read_parquet_managerê  s»   € ä�\‰\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Âô
ˆô �_‰_Óð 	, $Ø�M‰M˜$ rˆMÔ*Ü! $¨Ó+ˆF÷	,ñ Ü˜fŸk™k¬2¯7©7×+<Ñ+<×+IÑ+IÔJÐJÑJä˜fŸk™k¬2¯7©7×+<Ñ+<×+IÑ+IÔJÐJÑJ÷	,ð 	,ús   Á C:Ã:Dc                 óò  — dd l }|}t        j                  ddd¬«      }|j                  d «      }||d<   g d¢|d<   |j                  j                  |«      }|j                  t        j                  ¬	«      }t        rj|d
   j                  d«      |d
<   |d   j                  d«      |d<   |d   j                  t        j                   |j                  dd¬«      «      «      |d<   t        ||ddi|¬«       y )Nr   rC   r2   rh  ri  rk  rl  rm  )Útypes_mapperri   ztimestamp[us][pyarrow]rj   Úus)Úunitrj  rQ  r   ©r#   r�   r   )r   r7   rO   r  ÚTableÚfrom_pandasÚ	to_pandasÚ
ArrowDtyper	   rl   Ú	timestampr…   )rÆ   r*   ro   r   rP   rn  Úpa_tabler   s           r"   Ú&test_read_dtype_backend_pyarrow_configz9TestParquetPyArrow.test_read_dtype_backend_pyarrow_configø  sþ   € Ûàˆô �m‰m˜J°Ð6GÔHˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÚ1ˆÐÑà—=‘=×,Ñ,¨RÓ0ˆØ×%Ñ%´2·=±=Ð%ÓAˆÝà#+¨JÑ#7×#>Ñ#>Ð?WÓ#XˆH�ZÑ Ø,4Ð5HÑ,I×,PÑ,PØ(ó-ˆHÐ(Ñ)ð '/¨}Ñ&=×&DÑ&DÜ—‘Ð/˜g×/Ñ/°TÐ>OÔPÓQó'ˆH�]Ñ#ô 	ØØØ(¨)Ð4Øö		
r$   c                 ó6  — t        j                  dddgit        j                  ddgd¬«      d¬	«      }|j                  «       }d
d l}t        |j                  «      t        d«      kD  r |j                  j                  d«      |_        t        ||ddi|¬«       y )NrF   r0   r1   r2   r<   Útest©r  zint64[pyarrow])rÿ   rA   r   z11.0.0rQ  r   r  )
r7   r8   ÚIndexr  r   r   r¨   rÿ   rl   r…   )rÆ   r*   rP   r   r   s        r"   Ú,test_read_dtype_backend_pyarrow_config_indexz?TestParquetPyArrow.test_read_dtype_backend_pyarrow_config_index  s‡   € Ü�\‰\Ø�1�a�&ˆM¤§¡¨1¨a¨&°vÔ!>ÐFVô
ˆð —7‘7“9ˆÛä�7×&Ñ&Ó'¬'°(Ó*;Ò;Ø%Ÿ^™^×2Ñ2Ð3CÓDˆHŒNÜØØØ(¨)Ð4Øö		
r$   c           	      ó¦  — t        j                  t        d«      t        t        dd«      «      dœ«      }ddg|_        t        ||«       ddg|_        t        j                  t        d¬	«      5  t        ||«       d d d «       t        j                  d
dddd«      t        j                  d
dddd«      g|_        t        ||«       y # 1 sw Y   ŒMxY w)Nr;   r0   r<   ré   r   rU   rV   z|S3r�   éÛ  )
r7   r8   rK   rL   r´   r…   r'   r’   ÚNotImplementedErrorri   r|  s      r"   Útest_columns_dtypes_not_invalidz2TestParquetPyArrow.test_columns_dtypes_not_invalid&  sº   € Ü�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆð ˜�VˆŒ
Ü˜˜RÔ ð ˜fÐ%ˆŒ
Ü�]‰]Ô.°eÔ<ñ 	%ä˜R Ô$÷	%ô ×Ñ˜d A q¨!¨QÓ/Ü×Ñ˜d A q¨!¨QÓ/ð
ˆŒ
ô 	˜˜RÕ ÷	%ð 	%ús   Á.CÃCc                 óv   — t        j                  t        j                  g d¢d¬«      ¬«      }t        ||«       y )NrÖ  úcustom namer  r'  ©r7   r8   r  r…   r|  s      r"   Útest_empty_columnsz%TestParquetPyArrow.test_empty_columns:  s%   € ä�\‰\¤§¡ª¸}Ô MÔNˆÜ˜˜RÕ r$   c                 óÈ   — |dz  }t        j                  ddgi¬«      }ddi|_        |j                  ||¬«       t	        ||¬«      }|j                  |j                  k(  sJ ‚y )Nztest_df_metadata.pr0   ©rÏ   Útest_attributer³   )r7   r8   Úattrsr   r   )rÆ   rü   r*   r€   rP   Únew_dfs         r"   Útest_df_attrs_persistencez,TestParquetPyArrow.test_df_attrs_persistence?  s_   € ØÐ.Ñ.ˆÜ�\‰\  A 3˜xÔ(ˆØ$ aÐ(ˆŒØ
�‰�d 2ˆÔ&Ü˜d¨2Ô.ˆØ�|‰|˜rŸx™xÒ'Ð'Ñ'r$   c                 óp  — |dz  }t        j                  dddgiddg¬«      }|j                  |d¬«       t        j                  d	d
«      5  t	        |d¬«      }d d d «       t        j                  dddgidt        j
                  ddgd¬«      ¬«      }t        j                  |«       y # 1 sw Y   ŒSxY w)Nztest_string_inference.prF   rÇ  ÚyrG   )rÏ   rÿ   r   r³   úfuture.infer_stringTústring[pyarrow_numpy]r@   )rÏ   rA   rÿ   )r7   r8   r   r™   r   r  rz   r{   ©rÆ   rü   r*   r€   rP   r·   r   s          r"   Útest_string_inferencez(TestParquetPyArrow.test_string_inferenceG  s®   € àÐ3Ñ3ˆÜ�\‰\  c¨3 ZÐ0¸¸c¸
ÔCˆØ
�‰�d 9ˆÔ-Ü×ÑÐ4°dÓ;ñ 	:Ü! $¨yÔ9ˆF÷	:ä—<‘<Ø˜˜S�zÐ"Ø)Ü—(‘(˜C ˜:Ð-DÔEô
ˆô
 	×Ñ˜f hÕ/÷	:ð 	:ús   ÁB,Â,B5znot supported before 11.0c           	      ó:  — dd l }|dz  }t        j                  dt        d«      gid¬«      }|j	                  ||j                  d|j                  d«      fg«      ¬«       t        |«      }t        j                  dd	gid
¬«      }t        j                  ||«       y )Nr   z	decimal.prF   z123.00rÙ  r@   rë  )r‹   Ú123zstring[python])
r   r7   r8   r   r   r‹   Ú
decimal128r   rz   r{   r#  s          r"   Útest_roundtrip_decimalz)TestParquetPyArrow.test_roundtrip_decimalU  sŠ   € ó 	à˜+Ñ%ˆÜ�\‰\˜3¤¨Ó!2Ð 3Ð4Ð<MÔNˆØ
�‰�d 2§9¡9¨s°B·M±MÀ!Ó4DÐ.EÐ-FÓ#GˆÔHÜ˜dÓ#ˆÜ—<‘<  u g Ð6FÔGˆÜ
×Ñ˜f hÕ/r$   c                 ó¨  — dd l }dd lm} |dz  }|j                  d|j	                  g d¢|j                  «       «      i«      }|j                  ||«       t        j                  dd«      5  t        |«      }d d d «       t        j                  dg d¢idt        j                  dgd¬«      ¬	«      }t        j                  |«       y # 1 sw Y   ŒRxY w)
Nr   zlarge_string.prF   )NrG   rS   r!  Tr"  r@   )rÏ   rA   r´   )r   Úpyarrow.parquetrÐ   rZ  r   Úlarge_stringr[  r7   r™   r   r8   r  rz   r{   )rÆ   rü   r*   r\  r€   rZ  r·   r   s           r"   Ú#test_infer_string_large_string_typez6TestParquetPyArrow.test_infer_string_large_string_typea  s´   € ãÝ$àÐ*Ñ*ˆà—‘˜#˜rŸx™xÒ(8¸"¿/¹/Ó:KÓLÐMÓNˆØ
�‰�u˜dÔ#ä×ÑÐ4°dÓ;ñ 	(Ü! $Ó'ˆF÷	(ä—<‘<ØÒ'Ð(Ø)Ü—H‘H˜c˜UÐ*AÔBô
ˆô
 	×Ñ˜f hÕ/÷	(ð 	(ús   Á+CÃCN)1rÜ   rÝ   rÞ   ro  rq  rv  r}  r�  r…  r‹  r'   rß   rX  r   Úskipifr
   rd  ÚstrÚpathlibÚPathr‘  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"   rf  rf  ¸  sò  „ ò	!ò
ò
-òVò
!òKò%ð ‡[�[×ÑÙÓð?ð ó ð ‡[�[×ÑÐ0Ð0Ð9NÐÓOØ‡[�[×Ñ˜[¨3°·±Ð*=Ó>ñ,ó ?ó Póð,ò!ð$ ‡[�[×Ññ

ó ð

ð ‡[�[×Ññ	
ó ð	
ð ‡[�[×ÑØ‡[�[×ÑØàˆEØð	
óñ
óó ð
ò>6ò3ò8ò8ð ‡[�[×ÑØ�c™;Ð'¨h¸Ð-Gð ó ñ	4óð	4ò!ò
Sò!ò Vò!ò @ò4ò, òKò
ò<
ò !ò(!ò
(ò0ð ‡[�[×ÑÐ,Ð5PÐÓQñ	0ó Rð	0ó0r$   rf  c                   óB  — e Zd Zd„ Zd„ Zd„ Zej                  j                   e	e
j                  «       e	d«      k\  d¬«      d„ «       Zd„ Zd	„ Zd
„ Zej                  j                   d„ «       Zd„ Zd„ Zd„ Zd„ Zej                  j-                   e«       d¬«      d„ «       Zej                  j                  exr  e	ej                  «       e	d«      kD  d¬«      d„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"ej                  j-                   e«       d¬«      d„ «       Z#y)ÚTestParquetFastParquetc                 ó°   — |}t        j                  ddd¬«      }|j                  d «      }||d<   t        j                  dd¬«      |d<   t	        ||«       y )	NrC   r2   z
US/Easternri  rk  r  rD   Ú	timedelta)r7   rO   r  r€  r…   )rÆ   r-   ro   rP   rn  s        r"   ro  z!TestParquetFastParquet.test_basic‚  sQ   € Øˆä�m‰m˜J°°lÔCˆØ�n‰n˜TÓ"ˆØˆˆ=ÑÜ×,Ñ,¨W¸aÔ@ˆˆ;‰Ü˜˜RÕ 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 )
Nr;   r0   r<   ré   r3  r   rU   rV   r  )r7   r8   rK   rL   r4  r´   rÉ   ri   )rÆ   r-   rP   Úerrr”   s        r"   Útest_columns_dtypes_invalidz2TestParquetFastParquet.test_columns_dtypes_invalid‹  s¾   € Ü�\‰\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆäˆØ,ˆð ˜�VˆŒ
Ø×!Ñ! " b¨#¨sÔ3ð ˜fÐ%ˆŒ
Ø×!Ñ! " b¨#¨sÔ3ô ×Ñ˜d A q¨!¨QÓ/Ü×Ñ˜d A q¨!¨QÓ/ð
ˆŒ
ð 	×!Ñ! " b¨#¨sÕ3r$   c                 óÚ   — t        j                  t        j                  d«      j	                  dd«      t        d«      ¬«      j                  «       }d}| j                  ||t        |«       y )Nrx  r<   r2   ry  r  z9Cannot create parquet dataset with duplicate column namesrz  ©rÆ   r-   rP   r”   s       r"   r}  z-TestParquetFastParquet.test_duplicate_columns   sM   € ä�\‰\œ"Ÿ)™) B›-×/Ñ/°°1Ó5¼tÀE»{ÔK×PÑPÓRˆØIˆØ×!Ñ! " b¬*°cÕ:r$   z2.0.0z$fastparquet uses np.float_ in numpy2r   c                 ó¨   — t        j                  dg d¢i«      }t        j                  ddt        j                  dgid¬«      }t	        |||d¬«       y )	NrF   )TNFrL  g        rŠ  r@   F)r   rx   )r7   r8   rM   rk   r…   ©rÆ   r-   rP   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ˆô 	˜˜R¨(ÀÖFr$   c                 óô   — t        j                  dt        j                  ddd¬«      i«      }| j                  ||t        d «       t        j                  dg d¢i«      }d}| j                  ||t        |«       y )NrF   Ú2013ÚMr2   ræ  rƒ  z"Can't infer object conversion type)r7   r8   rá  rÉ   r“   r9  s       r"   r…  z'TestParquetFastParquet.test_unsupported±  sd   € ä�\‰\˜3¤§¡°¸SÈ!Ô LÐMÓNˆà×!Ñ! " b¬*°dÔ;ô �\‰\˜3¢Ð.Ó/ˆØ2ˆØ×!Ñ! " b¬*°cÕ:r$   c                 ó‚   — t        j                  dt        j                  t        d«      «      i«      }t	        ||«       y )NrF   r;   )r7   r8   r–  rK   r…   )rÆ   r-   rP   s      r"   r˜  z'TestParquetFastParquet.test_categorical¼  s,   € Ü�\‰\˜3¤§¡¬t°E«{Ó ;Ð<Ó=ˆÜ˜˜RÕ r$   c                 ó  — dt        t        d«      «      i}t        j                  |«      }t	        j
                  «       5 }|j                  ||d d¬«       t        ||dg¬«      }d d d «       t        «      dk(  sJ ‚y # 1 sw Y   ŒxY w)NrF   r2   r0   )r#   rs   Úrow_group_offsetsrô  rõ  )	rK   rL   r7   r8   rz   r„   r   r   r  )rÆ   r-   rH   rP   r€   r·   s         r"   rö  z-TestParquetFastParquet.test_filter_row_groupsÀ  s   € Ø”$”u˜Q“x“.Ð!ˆÜ�\‰\˜!‹_ˆÜ�_‰_Óð 	F $Ø�M‰M˜$ r°tÈqˆMÔQÜ! $¨°^Ð4DÔEˆF÷	Fô �6‹{˜aÒÐÑ÷	Fð 	Fús   Á %A>Á>Bc           	      óJ   — t        ||d|j                  › d�d|id |dœ¬«       y )Nr¦  z/fastparquet.parquetr¥  )rs   r¥  r�  r§  )rÆ   r9   rŸ  r-   r   s        r"   r¨  z(TestParquetFastParquet.test_s3_roundtripÈ  s7   € ô 	ØØØÐ)×.Ñ.Ð/Ð/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 )Nrh   rd   r   ©r#   rù   rs   r   Fr1   ©	r   rŽ  r€   Úexistsr   ÚParquetFiler.  Úcatsr  ©rÆ   rü   r-   ro   rù   rP   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 )Nrh   r   rE  r   Fr0   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 )Nrh   rd   r   )r#   rs   Úpartition_onr   Fr1   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)Nrh   rd   zYCannot use both partition_on and partition_cols. Use partition_cols for partitioning datar�   r   )r#   rs   rN  rù   )r'   r’   r“   r   )rÆ   rü   r-   ro   rù   rP   r”   s          r"   Ú3test_error_on_using_partition_cols_and_partition_onzJTestParquetFastParquet.test_error_on_using_partition_cols_and_partition_on  sa   € ð ! %˜ˆØˆð ð 	ô �]‰]œ:¨SÔ1ñ 	Ø�M‰MØØ$Ø Ø+Ø-ð ô ÷	÷ 	ñ 	ús   ¤AÁAzfastparquet writes into Indexc                 óh   — t        j                  «       }|j                  «       }t        |||¬«       y )NrÜ  )r7   r8   r  r…   r;  s       r"   rÍ  z+TestParquetFastParquet.test_empty_dataframe  s&   € ô �\‰\‹^ˆØ—7‘7“9ˆÜ˜˜R¨(Ö3r$   z2022.12zCfastparquet bug, see https://github.com/dask/fastparquet/issues/929c                 ó    — d|gz  }t        j                  |d|i¬«      }|j                  «       }d|j                  _        t        |||¬«       y )Nrë  rì  rí  rÿ   rÜ  )r7   r8   r  rÿ   r  r…   )rÆ   r-   rq   rñ  rP   r   s         r"   rò  z0TestParquetFastParquet.test_timezone_aware_index  sJ   € ð
 Ð+Ð,Ñ,ˆä�\‰\ ¨>¸3Ð*?Ô@ˆà—7‘7“9ˆØ%ˆ�‰ÔÜ˜˜R¨(Ö3r$   c                 óþ  — t        j                  dddgi«      }t        j                  «       5 }|j	                  |«       t        j                  t        d¬«      5  t        j                  t        «      5  t        |dd¬«       d d d «       d d d «       t        j                  t        d¬«      5  t        |dd	¬
«       d d d «       d d d «       y # 1 sw Y   ŒLxY w# 1 sw Y   ŒPxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)NrF   r0   r1   z!not supported for the fastparquetr�   r   T)r#   Úuse_nullable_dtypesr   rP  )r7   r8   rz   r„   r   r'   r’   r“   r¿   rÀ   r   )rÆ   r-   rP   r€   s       r"   Ú&test_use_nullable_dtypes_not_supportedz=TestParquetFastParquet.test_use_nullable_dtypes_not_supported*  sá   € Ü�\‰\˜3  A ˜-Ó(ˆä�_‰_Óð 	R $Ø�M‰M˜$ÔÜ—‘œzÐ1TÔUñ WÜ×/Ñ/´Ó>ñ WÜ  ¨mÐQUÕV÷W÷Wô —‘œzÐ1TÔUñ RÜ˜T¨-ÀyÕQ÷R÷	Rð 	R÷Wð Wú÷Wð Wú÷Rð Rú÷	Rð 	RúsS   ®-C3ÁCÁ5CÂCÂ#C3Â/C'Â>C3ÃCÃCÃC$	Ã C3Ã'C0	Ã,C3Ã3C<c                 ód  — t        j                  d«      5 }t        j                  |«      j	                  d«       t        j                  t        d¬«      5  t        |d¬«       d d d «       t        j                  |«      j                  d¬«       d d d «       y # 1 sw Y   Œ7xY w# 1 sw Y   y xY w)	Nútest.parquets   breakitÚ r�   r   r³   F)Ú
missing_ok)
rz   r„   r/  r0  Úwrite_bytesr'   r’   Ú	Exceptionr   Úunlink)rÆ   r€   s     r"   Ú$test_close_file_handle_on_read_errorz;TestParquetFastParquet.test_close_file_handle_on_read_error5  sŠ   € Ü�_‰_˜^Ó,ð 	8°Ü�L‰L˜Ó×*Ñ*¨:Ô6Ü—‘œy°Ô3ñ 9Ü˜T¨-Õ8÷9ô �L‰L˜Ó×%Ñ%°Ð%Ô7÷	8ð 	8÷9ð 9ú÷	8ð 	8ús$   –A B&ÁBÁ$-B&ÂB#	ÂB&Â&B/c                 óX  — t        j                  ddgddgdœ¬«      }t        j                  d«      5 }t	        |j                  «       d«      5 }|j                  |«       d d d «       t        ||¬«      }d d d «       t        j                  |«       y # 1 sw Y   Œ5xY w# 1 sw Y   Œ,xY w)Nr   r0   r4   r  rX  Úwbr³   )	r7   r8   rz   r„   rÕ   Úencoder   r   r{   )rÆ   r#   rP   r€   rJ   r·   s         r"   Útest_bytes_file_namez+TestParquetFastParquet.test_bytes_file_name=  s“   € ä�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�_‰_˜^Ó,ð 	7°Ü�d—k‘k“m TÓ*ð !¨aØ—‘˜aÔ ÷!ô " $¨vÔ6ˆF÷		7ô
 	×Ñ˜f bÕ)÷	!ð !ú÷	7ð 	7ús#   ³B ÁBÁ B ÂB	ÂB Â B)c                 óX  — t        j                  d«       t        j                  ddgddgdœ¬«      }t	        j
                  «       5 }t        j                  t        d¬«      5  |j                  |dd¬	«       d d d «       d d d «       t	        j
                  «       5 }t        j                  |«      j                  d
«       t        j                  t        d¬«      5  t        |dd¬	«       d d d «       d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   Œ‰xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nr   r   r0   r4   r  zfilesystem is not implementedr�   r3   ©r#   r›  rU   )r'   rÔ   r7   r8   rz   r„   r’   r  r   r/  r0  r[  r   ©rÆ   rP   r€   s      r"   Útest_filesystem_notimplementedz5TestParquetFastParquet.test_filesystem_notimplementedG  s  € Ü×Ñ˜MÔ*Ü�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�_‰_Óð 	L $Ü—‘Ü#Ð+Jôñ Lð —‘˜d¨=ÀU�ÔK÷L÷	Lô �_‰_Óð 	K $Ü�L‰L˜Ó×*Ñ*¨6Ô2Ü—‘Ü#Ð+Jôñ Kô ˜T¨-ÀEÕJ÷K÷	Kð 	K÷Lð Lú÷	Lð 	Lú÷Kð Kú÷	Kð 	KúóI   ÁDÁ#C<Á8DÂA D ÃDÃ+D Ã<D	ÄDÄDÄD	ÄD Ä D)c                 óX  — t        j                  d«       t        j                  ddgddgdœ¬«      }t	        j
                  «       5 }t        j                  t        d¬«      5  |j                  |dd¬	«       d d d «       d d d «       t	        j
                  «       5 }t        j                  |«      j                  d
«       t        j                  t        d¬«      5  t        |dd¬	«       d d d «       d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   Œ‰xY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nr   r   r0   r4   r  z1filesystem must be a pyarrow or fsspec FileSystemr�   r3   rd  rU   )r'   rÔ   r7   r8   rz   r„   r’   r“   r   r/  r0  r[  r   re  s      r"   Útest_invalid_filesystemz.TestParquetFastParquet.test_invalid_filesystemW  s  € Ü×Ñ˜IÔ&Ü�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�_‰_Óð 	H $Ü—‘ÜÐ"Uôñ Hð —‘˜d¨9À�ÔG÷H÷	Hô �_‰_Óð 	G $Ü�L‰L˜Ó×*Ñ*¨6Ô2Ü—‘ÜÐ"Uôñ Gô ˜T¨)ÀÕF÷G÷	Gð 	G÷Hð Hú÷	Hð 	Hú÷Gð Gú÷	Gð 	Gúrg  c           	      óœ  — t        j                  d«      }t        j                  ddgddgdœ¬«      }t	        j
                  «       5 }t        j                  t        d¬«      5  |j                  |d|j                  «       d	d
i¬«       d d d «       d d d «       t	        j
                  «       5 }t        j                  |«      j                  d«       t        j                  t        d¬«      5  t        |d|j                  «       d	d
i¬«       d d d «       d d d «       y # 1 sw Y   Œ–xY w# 1 sw Y   ŒšxY w# 1 sw Y   Œ*xY w# 1 sw Y   y xY w)Nz
pyarrow.fsr   r0   r4   r  z8storage_options not supported with a pyarrow FileSystem.r�   r   r3   rX   )r#   r›  r¥  rU   )r'   rÔ   r7   r8   rz   r„   r’   r  r   ÚLocalFileSystemr/  r0  r[  r   )rÆ   Úpa_fsrP   r€   s       r"   Ú.test_unsupported_pa_filesystem_storage_optionszETestParquetFastParquet.test_unsupported_pa_filesystem_storage_optionsg  s*  € Ü×#Ñ# LÓ1ˆÜ�\‰\ a¨ V°1°a°&Ñ9Ô:ˆÜ�_‰_Óð 
	 $Ü—‘Ü#ØPôñ 	ð —‘ØØ$Ø$×4Ñ4Ó6Ø%*¨E Nð	 ô ÷		÷
	ô �_‰_Óð 	 $Ü�L‰L˜Ó×*Ñ*¨6Ô2Ü—‘Ü#ØPôñ 	ô ØØ$Ø$×4Ñ4Ó6Ø%*¨E Nõ	÷		÷	ð 	÷	ð 	ú÷
	ð 
	ú÷	ð 	ú÷	ð 	úsI   ÁD*Á#&DÂ	D*Â-A EÃ- D6ÄEÄD'	Ä#D*Ä*D3Ä6D?	Ä;EÅEc           	      óL  — d}t        j                  dt        t        dd«      «      i«      }t	        j
                  d«      5 }|j                  |«       t        j                  t        |¬«      5  t        |d¬«       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rd   r0   r<   ztmp.parquetr�   Únumpy)rQ  )r7   r8   rK   rL   rz   r„   r   r'   r’   r“   r   )rÆ   r#   r”   rP   r€   s        r"   Útest_invalid_dtype_backendz1TestParquetFastParquet.test_invalid_dtype_backendƒ  s�   € ð%ð 	ô �\‰\˜5¤$¤u¨Q°£{Ó"3Ð4Ó5ˆÜ�_‰_˜]Ó+ð 	:¨tØ�M‰M˜$ÔÜ—‘œz°Ô5ñ :Ü˜T°Õ9÷:÷	:ð 	:÷:ð :ú÷	:ð 	:ús$   Á-BÁ/BÁ=BÂB	ÂBÂB#c                 óÔ   — t        j                  t        j                  g d¢d¬«      ¬«      }t        j                  t        j                  g d¢d¬«      ¬«      }t        |||¬«       y )NrÖ  r  r  r'  rÜ  r  r;  s       r"   r  z)TestParquetFastParquet.test_empty_columnsŽ  sB   € ô �\‰\¤§¡ª¸}Ô MÔNˆÜ—<‘<¤b§h¡hªÀ]Ô&SÔTˆÜ˜˜R¨(Ö3r$   N)$rÜ   rÝ   rÞ   ro  r7  r}  r'   rß   rX  r   rM   r¨   r<  r…  r˜  rö  rá   r¨  rÂ  rÅ  rO  rQ  r-  r   rÍ  r,   r   rò  rV  r^  rb  rf  ri  rm  rp  r  r)   r$   r"   r2  r2  �  s_  „ ò!ò4ò*;ð ‡[�[×ÑÙ�—‘Ó¡7¨7Ó#3Ñ3Ø5ð ó ñGó	ðGò	;ò!ò ð ‡[�[×Ññ
ó ð
ò/ò /ò /ò ð& ‡[�[×ÑÑ+Ó-Ð6UÐÓVñ4ó Wð4ð ‡[�[×ÑØÒS™g k×&=Ñ&=Ó>ÁÈÓASÑSØTð ó ñ4ó	ð4ò	Rò8ò*òKò Gò ò8	:ð ‡[�[×ÑÑ+Ó-Ð6UÐÓVñ4ó Wñ4r$   r2  )	NNNNNTFTr1   )IÚ__doc__ri   Údecimalr   rÎ   r   rŽ  r/  ro  rM   r'   Úpandas._configr   Úpandas._config.configr   Úpandas.compatr   Úpandas.compat.pyarrowr   r	   r
   Úpandasr7   Úpandas._testingÚ_testingrz   Úpandas.util.versionr   Úpandas.io.parquetr   r   r   r   r   r   r&   r©   r   r,   rß   ÚfilterwarningsÚ
pytestmarkÚfixturer   r-  r#   r*   r-   r9   rQ   ro   Únowrï  rð  ÚminÚmaxÚstrptimerq   r…   rŽ   r•   rš   r�   r    r£   r°   r¸   r»   rÁ   rÃ   rã   rf  r2  r)   r$   r"   ú<module>r„     sE  ðÙ Û Ý Ý Û 	Û ã Û å .Ý -å -÷ñ ó Ý Ý '÷õ ðÛà€MðÛàÐð ‡K�K×ÑÐSÓTØ
‡K�K×ÑØGóð€
ð €‡�àˆ�‰ØØ—+‘+×$Ñ$Ø%Ð%ò LÙÐ2¸4Ô@ÀGÑKØMð %ó ô	
ð 	ˆ�‰ØØ—+‘+×$Ñ$Ø!Ð!Ð*Dð %ó ô	
ðôñ$ó%ð$ð ‡�ñó ðð ‡�ñó ðð ‡�ñ6ó ð6ð ‡�ñó ðð" ‡�ñó ðð. €‡�à×Ñ×Ñ˜h×/Ñ/×3Ñ3Ó4Ø×Ñ×Ñ˜h×/Ñ/×3Ñ3Ó4Ø×Ñ×Ñ˜h×/Ñ/×3Ñ3Ó4Ø×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUØ×Ñ×"Ñ"Ð#=Ð?TÓUðô
ñó
ðð Ø	ØØØØØØØó?òD9ò 2ò$ò$ò$òFò((#òV6ò
6ò(÷"-ñ -ô0f
�ô f
ôR	z0˜ô z0ôRR4˜Tõ R4øðy" ò ØƒMðûð ò ØÓðús$   ÁK' Á%K5 Ë'K2Ë1K2Ë5L Ë?L 