§
    {hþ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mZ ddlmZ ddlmZ ddlmZmZmZmZmZ dd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&n# e'$ r dZ&Y nw xY w	 ddl(Z(dZ)n# e'$ r dZ)Y nw xY we
j*         +                    d¦  «        e
j*         +                    d¦  «        gZ, e
j-         e
j.        de
j*         /                    e) p edd¬¦  «        dk    d¬¦  «        e
j*         0                     e¦   «         dd¬¦  «        g¬¦  «         e
j.        de
j*         /                    e& d¬¦  «        ¬¦  «        g¬¦  «        d„ ¦   «         Z1e
j-        d„ ¦   «         Z2e
j-        d„ ¦   «         Z3e
j-        d„ ¦   «         Z4e
j-        d„ ¦   «         Z5e
j-        d „ ¦   «         Z6 e
j-        ej         7                    ej8        j9        ¦  «        ej         7                    ej8        j:        ¦  «        ej         7                    ej8        j;        ¦  «        ej         <                    d!d"¦  «        ej         <                    d#d"¦  «        ej         <                    d$d"¦  «        ej         <                    d%d"¦  «        g¬¦  «        d&„ ¦   «         Z=	 	 	 	 	 	 	 	 	 d;d(„Z>d)„ Z?d*„ Z@d+„ ZAd,„ ZBd-„ ZCd.„ ZDd/„ ZEd0„ ZFd1„ ZGd2„ ZH G d3„ d4¦  «        ZI G d5„ d6eI¦  «        ZJ G d7„ d8eI¦  «        ZK G d9„ d:eI¦  «        ZLdS )<z test parquet compat é    N)ÚDecimal)ÚBytesIO)Úusing_copy_on_writeÚusing_string_dtype)Ú_get_option)Úis_platform_windows)Úpa_version_under11p0Úpa_version_under13p0Úpa_version_under15p0Ú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úmode.data_manager©ÚsilentÚarrayz4fastparquet is not installed or ArrayManager is used©ÚreasonúTODO(infer_string) fastparquet©r   Ústrict©ÚmarksÚpyarrowúpyarrow is not installed)Úparamsc                 ó   — | j         S ©N©Úparam©Úrequests    úS/var/www/histauto/venv/lib/python3.11/site-packages/pandas/tests/io/test_parquet.pyÚenginer*   @   s   € ð4 Œ=Ðó    c                  ó<   — t           st          j        d¦  «         dS )Nr!   r    )Ú_HAVE_PYARROWÚpytestÚskip© r+   r)   Úpar1   ]   s    € åð 0ÝŒÐ.Ñ/Ô/Ð/Øˆ9r+   c                 ó  — t           st          j        d¦  «         n)t          dd¬¦  «        dk    rt          j        d¦  «         t	          ¦   «         r4|                      t          j                             dd¬	¦  «        ¦  «         d
S )Nzfastparquet is not installedr   Tr   r   z.ArrayManager is not supported with fastparquetr   Fr   r   )Ú_HAVE_FASTPARQUETr.   r/   r   r   ÚapplymarkerÚmarkÚxfailr'   s    r)   Úfpr7   d   s�   € åð FÝŒÐ2Ñ3Ô3Ð3Ð3Ý	Ð(°Ð	6Ñ	6Ô	6¸'Ò	AÐ	AÝŒÐDÑEÔEÐEÝÑÔð 
Ø×ÒÝŒK×ÒÐ%EÈeÐÑTÔTñ	
ô 	
ð 	
ð ˆ=r+   c                  ó`   — t          j        g d¢ddœt          j        ddg¦  «        ¬¦  «        S )N©é   é   é   Úfoo©ÚAÚBr?   r@   ©Úcolumns)ÚpdÚ	DataFrameÚIndexr0   r+   r)   Ú	df_compatrF   q   s1   € åŒ<˜i˜i˜i¨eÐ4Ð4½b¼hÈÈSÀzÑ>RÔ>RÐSÑSÔ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Úabcr:   é   ç      @ç      @Úfloat64©Údtype©TFTÚ20130101r<   ©Úperiods)ÚaÚbÚdÚeÚf)rC   rD   ÚlistÚrangeÚnpÚarangeÚ
date_range)Údfs    r)   Údf_cross_compatr^   v   so   € å	Œå�e‘”Ý•e˜A˜q‘k”kÑ"Ô"å”˜3 ¨9Ð5Ñ5Ô5Ø$Ð$Ð$Ý”˜z°1Ð5Ñ5Ô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
¦  «                             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 )NrH   rS   Úc©rS   Nr`   )ó   fooó   bars   baz©r=   ÚbarÚbazr:   rI   r<   é   Úu1rJ   rK   rL   rM   ç       @ç      @rO   rP   rQ   Ú20130103)ÚstringÚstring_with_nanÚstring_with_noneÚbytesÚunicodeÚintÚuintÚfloatÚfloat_with_nanÚboolÚdatetimeÚdatetime_with_nat)rC   rD   rX   rZ   ÚnanrY   r[   Úastyper\   Ú	TimestampÚNaTr0   r+   r)   Údf_fullr|   ˆ   sÝ   € åŒ<å˜5‘k”kØ #¥R¤V¨SÐ1Ø 0Ð 0Ð 0Ø-Ð-Ð-Ø,Ð,Ð,Ý�˜a ™œÑ$Ô$Ý”I˜a ‘O”O×*Ò*¨4Ñ0Ô0Ý”Y˜s C¨yÐ9Ñ9Ô9Ø"¥B¤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_listr~       s   € ð Œ=Ðr+   r;   c
                 óî   ‡ ‡‡‡‡‡‡‡— ‰pddiŠ‰pi Š‰€‰ Š|r
|‰d<   |‰d<   ˆˆˆˆ ˆˆˆˆfd„}
‰€9t          j        ¦   «         5 Š |
|	¦  «         ddd¦  «         dS # 1 swxY w Y   dS  |
|	¦  «         dS )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 ]D} ‰j        ‰fi ‰
¤Ž t          ‰fi ‰	¤Ž}d‰v r
d ‰j        d<   t	          j        ‰|‰‰‰¬¦  «         ŒEd S )Nrm   ©r:   rm   )Úcheck_namesÚ
check_likeÚcheck_dtype)rY   r   r   ÚlocÚtmÚassert_frame_equal)ÚrepeatÚ_Úactualr…   r„   rƒ   r]   ÚexpectedÚpathÚread_kwargsÚwrite_kwargss      €€€€€€€€r)   Úcomparez!check_round_trip.<locals>.compareÛ   s—   ø€ Ý�v‘”ð 	ð 	ˆAØˆBŒM˜$Ð/Ð/ ,Ð/Ð/Ð/Ý! $Ð6Ð6¨+Ð6Ð6ˆFà  HÐ,Ð,Ø59�”Ð1Ñ2ÝÔ!ØØØ'Ø%Ø'ðñ ô ð ð ð	ð 	r+   )r‡   Úensure_clean)r]   r*   r�   r�   rŽ   rŒ   rƒ   r„   r…   r‰   r�   s   ` ```````  r)   Úcheck_round_tripr’   ¯   s  øøøøøøøø€ ðD  Ð8 M°4Ð#8€LØÐ# €KàÐØˆàð 'Ø!'ˆ�XÑØ &ˆ�HÑðð ð ð ð ð ð ð ð ð ð ð ð €|ÝŒ_ÑÔð 	 $ØˆG�F‰OŒOˆOð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ˆ�‰Œˆˆˆs   ÁAÁA!Á$A!c                 ón   — ddl m} |                     | d¬¦  «        }|j        j        j        |k    sJ ‚dS )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›   ñ   sK   € ð !Ð Ð Ð Ð Ð à�jŠj˜¨FˆjÑ3Ô3€GØÔÔ&Ô,°Ò8Ð8Ð8Ð8Ð8Ð8r+   c                 ó”   — d}t          j        t          |¬¦  «        5  t          | dd¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz.engine must be one of 'pyarrow', 'fastparquet'©Úmatchr=   re   )r.   ÚraisesÚ
ValueErrorr’   )rF   Úmsgs     r)   Útest_invalid_enginer¢     s’   € Ø
:€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 2ð 2Ý˜ E¨5Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   ž=½AÁAc                 óÐ   — |r&t           s| j                             d¦  «        | _        t          j        dd¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚstrúio.parquet.enginer    )r   rB   ry   rC   Úoption_contextr’   )rF   r1   Úusing_infer_strings      r)   Útest_options_pyr¨     s±   € àð <Õ"6ð <Ø%Ô-×4Ò4°UÑ;Ô;ˆ	Ôå	Ô	Ð.°	Ñ	:Ô	:ð $ð $Ý˜Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   ¾AÁAÁ"Ac                 ó€   — t          j        dd¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¥   r   ©rC   r¦   r’   )rF   r7   s     r)   Útest_options_fpr«     sŠ   € õ 
Ô	Ð.°Ñ	>Ô	>ð $ð $Ý˜Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $ó   –3³7º7c                 ó€   — t          j        dd¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¥   Úautorª   )rF   r7   r1   s      r)   Útest_options_autor¯     sŠ   € õ 
Ô	Ð.°Ñ	7Ô	7ð $ð $Ý˜Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $r¬   c                 ó4  — 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 ¦  «         n# 1 swxY w Y   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 ¦  «         n# 1 swxY w Y   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 ¦  «         d S # 1 swxY w Y   d S )Nr    r   r¥   r®   )Ú
isinstancer   r   r   rC   r¦   )r7   r1   s     r)   Útest_options_get_enginer²     sÙ  € Ý•j Ñ+Ô+­[Ñ9Ô9Ð9Ð9Ð9Ý•j Ñ/Ô/µÑAÔAÐAÐAÐAå	Ô	Ð.°	Ñ	:Ô	:ð Fð FÝ�* VÑ,Ô,­kÑ:Ô:Ð:Ð:Ð:Ý�* YÑ/Ô/µÑ=Ô=Ð=Ð=Ð=Ý�* ]Ñ3Ô3µ_ÑEÔEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ
 
Ô	Ð.°Ñ	>Ô	>ð Fð FÝ�* VÑ,Ô,­oÑ>Ô>Ð>Ð>Ð>Ý�* YÑ/Ô/µÑ=Ô=Ð=Ð=Ð=Ý�* ]Ñ3Ô3µ_ÑEÔEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ
 
Ô	Ð.°Ñ	7Ô	7ð Fð FÝ�* VÑ,Ô,­kÑ:Ô:Ð:Ð:Ð:Ý�* YÑ/Ô/µÑ=Ô=Ð=Ð=Ð=Ý�* ]Ñ3Ô3µ_ÑEÔEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fð Fð Fs9   ÁA-CÃCÃCÃ8A-E2Å2E6Å9E6ÆA-HÈHÈHc                  ó°  — ddl m}  |                      d¦  «        }|                      d¦  «        }t          sdn)t	          t
          j        ¦  «        t	          |¦  «        k     }t          sdn)t	          t          j        ¦  «        t	          |¦  «        k     }t          o| }t          o| }|�s&|�s%|rId|› d�}t          j
        t          |¬¦  «        5  t          d	¦  «         d d d ¦  «         n# 1 swxY w Y   nDd
}t          j
        t          |¬¦  «        5  t          d	¦  «         d d d ¦  «         n# 1 swxY w Y   |rKd|› d�}t          j
        t          |¬¦  «        5  t          d	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d}t          j
        t          |¬¦  «        5  t          d	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S d S d S )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__r3   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¿   2  s  € ð 1Ð0Ð0Ð0Ð0Ð0ð —’˜iÑ(Ô(€JØ—’˜mÑ,Ô,€Jõ ð	@ˆˆå•WÔ(Ñ)Ô)­G°JÑ,?Ô,?Ò?ð õ !ð	Dˆˆå•[Ô,Ñ-Ô-µ¸
Ñ0CÔ0CÒCð õ #Ð>Ð+>Ð'>€NÝ&ÐBÐ/BÐ+B€Nàñ # .ñ #àð 	#ØS°
ÐSÐSÐSˆEÝ”�{°%Ð8Ñ8Ô8ð #ð #Ý˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #øð <ˆEÝ”�{°%Ð8Ñ8Ô8ð #ð #Ý˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð ð 	#ØW°
ÐWÐWÐWˆEÝ”�{°%Ð8Ñ8Ô8ð #ð #Ý˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #ð @ˆEÝ”�{°%Ð8Ñ8Ô8ð #ð #Ý˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #ð##ð #ð #ð #sH   ÃC0Ã0C4Ã7C4ÄD5Ä5D9Ä<D9Å#F Æ FÆFÆ*GÇGÇGc                 ó@  — | }t          j        ¦   «         5 }|                     ||d ¬¦  «         t          ||¬¦  «        }t          j        ||¦  «         t          ||ddg¬¦  «        }t          j        ||ddg         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r*   r€   ©r*   rS   rU   )r*   rB   ©r‡   r‘   r   r   rˆ   ©r^   r1   r7   r]   r�   Úresults         r)   Útest_cross_engine_pa_fprÆ   ]  sè   € ð 
€BÝ	ŒÑ	Ô	ð 6˜dØ
�Š�d 2°4ˆÑ8Ô8Ð8å˜d¨2Ð.Ñ.Ô.ˆÝ
Ô˜f bÑ)Ô)Ð)å˜d¨2¸¸S°zÐBÑBÔBˆÝ
Ô˜f b¨#¨s¨¤nÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6ó   –A0BÂBÂBc                 ó@  — | }t          j        ¦   «         5 }|                     ||d ¬¦  «         t          ||¬¦  «        }t          j        ||¦  «         t          ||ddg¬¦  «        }t          j        ||ddg         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S rÁ   rÃ   rÄ   s         r)   Útest_cross_engine_fp_parÉ   k  sæ   € à	€BÝ	ŒÑ	Ô	ð 6˜dØ
�Š�d 2°4ˆÑ8Ô8Ð8å˜d¨2Ð.Ñ.Ô.ˆÝ
Ô˜f bÑ)Ô)Ð)å˜d¨2¸¸S°zÐBÑBÔBˆÝ
Ô˜f b¨#¨s¨¤nÑ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6rÇ   c                 ó(  — t          j        dg d¢i¦  «        }d}t          j        ¦   «         5 }t          j        t
          |dd¬¦  «        5  |                     || ¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrS   r9   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)rC   rD   r‡   r‘   Úassert_produces_warningÚFutureWarningr   )r*   r]   r¡   r�   s       r)   Ú!test_parquet_pos_args_deprecationrÏ   x  s$  € å	Œ�s˜I˜I˜IÐ&Ñ	'Ô	'€Bð	1ð õ 
ŒÑ	Ô	ð (˜dÝÔ'ÝØØ"Ø$)ð	
ñ 
ô 
ð 	(ð 	(ð �MŠM˜$ Ñ'Ô'Ð'ð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s5   ®BÁA/Á#BÁ/A3	Á3BÁ6A3	Á7BÂBÂBc                   ó   — e Zd Zd„ Zd„ ZdS )ÚBasec                 óà   — t          j        ¦   «         5 }t          j        ||¬¦  «        5  t	          |||d ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   ©r€   )r‡   r‘   r.   rŸ   r   )Úselfr]   r*   ÚexcÚerr_msgr�   s         r)   Úcheck_error_on_writezBase.check_error_on_writeŠ  sò   € åŒ_ÑÔð 	? $Ý”˜s¨'Ð2Ñ2Ô2ð ?ð ?Ý˜2˜t V¸Ð>Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s3   ”A#«A¿A#ÁA	ÁA#ÁA	ÁA#Á#A'Á*A'c                 óÜ   — t          j        ¦   «         5 }t          j        |¦  «        5  t          |||d ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrÓ   )r‡   r‘   Úexternal_error_raisedr   )rÔ   r]   r*   rÕ   r�   s        r)   Úcheck_external_error_on_writez"Base.check_external_error_on_write�  sî   € åŒ_ÑÔð 	? $ÝÔ)¨#Ñ.Ô.ð ?ð ?Ý˜2˜t V¸Ð>Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s3   ”A!©A	½A!Á	A	ÁA!ÁA	ÁA!Á!A%Á(A%N)Ú__name__Ú
__module__Ú__qualname__r×   rÚ   r0   r+   r)   rÑ   rÑ   ‰  s2   € € € € € ð?ð ?ð ?ð?ð ?ð ?ð ?ð ?r+   rÑ   c                   óH  — e Zd Zd„ Zd„ Ze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                             dg d¢¦  «        d„ ¦   «         Zej        j        ej        j        d„ ¦   «         ¦   «         ZdS )Ú	TestBasicc                 óÌ   — t          j        g d¢¦  «        ddt          j        d¦  «        t          j        g d¢¦  «        fD ]!}d}|                      ||t          |¦  «         Œ"d S )Nr9   r:   r=   rP   z+to_parquet only supports IO with DataFrames)rC   ÚSeriesrz   rZ   r   r×   r    )rÔ   r*   Úobjr¡   s       r)   Ú
test_errorzTestBasic.test_error˜  s{   € åŒI�i�i�iÑ Ô ØØÝŒL˜Ñ$Ô$ÝŒH�Y�Y�YÑÔð
ð 	Dð 	DˆCð @ˆCØ×%Ò% c¨6µ:¸sÑCÔCÐCÐCð	Dð 	Dr+   c           	      ó¶   — t          j        t          d¦  «        t          t          dd¦  «        ¦  «        dœ¦  «        }ddg|_        t          ||¦  «         d S )NrH   r:   rI   ©rl   rq   r=   re   ©rC   rD   rX   rY   rB   r’   )rÔ   r*   r]   s      r)   Útest_columns_dtypeszTestBasic.test_columns_dtypes£  sR   € ÝŒ\¥T¨%¡[¤[½½eÀAÀq¹k¼kÑ9JÔ9JÐKÐKÑLÔLˆð ˜U�^ˆŒ
Ý˜˜VÑ$Ô$Ð$Ð$Ð$r+   r€   )NÚgzipÚsnappyÚbrotlic                 ó^   — t          j        dg d¢i¦  «        }t          ||d|i¬¦  «         d S )Nr?   r9   r€   ©r�   ©rC   rD   r’   )rÔ   r*   r€   r]   s       r)   Útest_compressionzTestBasic.test_compressionª  s:   € åŒ\˜3 	 	 	Ð*Ñ+Ô+ˆÝ˜˜V°=À+Ð2NÐOÑOÔOÐOÐOÐOr+   c           	      óö   — t          j        t          d¦  «        t          t          dd¦  «        ¦  «        dœ¦  «        }t          j        dt          d¦  «        i¦  «        }t	          |||ddgi¬¦  «         d S )NrH   r:   rI   rå   rl   rB   ©rŒ   rŽ   ©rC   rD   rX   rY   r’   )rÔ   r*   r]   rŒ   s       r)   Útest_read_columnszTestBasic.test_read_columns¯  sz   € åŒ\¥T¨%¡[¤[½½eÀAÀq¹k¼kÑ9JÔ9JÐKÐKÑLÔLˆå”< ­4°©;¬;Ð 7Ñ8Ô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¬¦  «         d S )NrI   Úaabb)rq   Úpartrq   r   r:   Úpartition_colsrõ   )rõ   ú==rS   )ÚfiltersrB   )r�   rŒ   r�   rŽ   r‰   rñ   )rÔ   r*   Útmp_pathr]   rŒ   s        r)   Útest_read_filterszTestBasic.test_read_filters¸  s˜   € ÝŒ\å�E !™HœH‘~”~Ý˜V™œðð ñ
ô 
ˆõ ”< ¨¨A¨ Ñ0Ô0ˆÝØØØØØ*¨V¨HÐ5Ø%8Ð$9ÀuÀgÐNÐNØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó°  — |dk    }t          j        dg d¢i¦  «        }t          ||¦  «         g d¢t          j        dd¬¦  «        t	          d¦  «        g d	¢g}|D ]T}||_        t          |t           j        ¦  «        r|j                             d ¦  «        |_        t          |||¬
¦  «         ŒUg d¢|_        d|j        _	        t          ||¦  «         d S )Nr   r?   r9   )r;   r<   rI   rP   r<   rQ   rH   )r:   r<   rI   )rƒ   )r   r:   r;   r=   )
rC   rD   r’   r\   rX   Úindexr±   ÚDatetimeIndexÚ
_with_freqÚname)rÔ   r*   rƒ   r]   Úindexesrü   s         r)   Útest_write_indexzTestBasic.test_write_indexË  sð   € Ø Ò-ˆåŒ\˜3 	 	 	Ð*Ñ+Ô+ˆÝ˜˜VÑ$Ô$Ð$ð ˆIˆIÝŒM˜*¨aÐ0Ñ0Ô0Ý�‰KŒKØˆIˆIð	
ˆð ð 	Bð 	BˆEØˆBŒHÝ˜%¥Ô!1Ñ2Ô2ð 5Øœ8×.Ò.¨tÑ4Ô4�”Ý˜R °[ÐAÑAÔAÐAÐAð �9�9ˆŒØˆŒŒÝ˜˜VÑ$Ô$Ð$Ð$Ð$r+   c                 óª   — |}t          j        dg d¢i¦  «        }t           j                             g d¢¦  «        }||_        t          ||¦  «         d S )Nr?   r9   ©)rS   r:   )rS   r;   )rT   r:   )rC   rD   Ú
MultiIndexÚfrom_tuplesrü   r’   )rÔ   r1   r*   r]   rü   s        r)   Útest_write_multiindexzTestBasic.test_write_multiindexã  sX   € àˆåŒ\˜3 	 	 	Ð*Ñ+Ô+ˆÝ”×)Ò)Ð*HÐ*HÐ*HÑIÔIˆØˆŒÝ˜˜VÑ$Ô$Ð$Ð$Ð$r+   c           	      óö  — |}t          j        ddd¬¦  «        }t          j        t          j                             d¦  «                             dt          |¦  «        z  df¦  «        t          d¦  «        ¬¦  «        }t           j	         
                    d	d
g|gddg¬¦  «        }|                     d ¬¦  «        }||fD ]8}||_        t          ||¦  «         t          ||dddgi|ddg         ¬¦  «         Œ9d S )Nz01-Jan-2018z01-Dec-2018ÚMS)Úfreqr;   r<   ÚABCrA   ÚLevel1ÚLevel2ÚlevelÚdate)r™   rB   r?   r@   ©rŽ   rŒ   )rC   r\   rD   rZ   ÚrandomÚdefault_rngÚstandard_normalÚlenrX   r  Úfrom_productÚcopyrü   r’   )rÔ   r1   r*   Údatesr]   Úindex1Úindex2rü   s           r)   Útest_multiindex_with_columnsz&TestBasic.test_multiindex_with_columnsì  s  € ØˆÝ”˜m¨]ÀÐFÑFÔFˆÝŒ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°a½#¸e¹*¼*±nÀaÐ5HÑIÔIÝ˜‘K”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œ}|                     d¬¦  «        }t          ||||¬¦  «         t          j        g d¢g d¢dœg d	¢¬
¦  «        }t          ||||¬¦  «         g d¢g d¢g}t          j        t	          t          d¦  «        ¦  «        d„ t          d¦  «        D ¦   «         dœ|¬
¦  «        }|                     d¬¦  «        }t          ||||¬¦  «         d S )Nr9   )ÚqÚrÚs)rS   rT   F)r€   rü   T)Údrop©r�   rŒ   )ÚzyxÚwvuÚtsr©rü   ©re   re   rf   rf   r=   r=   Úquxr%  ©ÚoneÚtwor'  r(  r'  r(  r'  r(  é   c                 ó   — g | ]}| ‘ŒS r0   r0   )Ú.0Úis     r)   ú
<listcomp>z7TestBasic.test_write_ignoring_index.<locals>.<listcomp>  s   € Ð+AÐ+AÐ+A°1¨Q¨BÐ+AÐ+AÐ+Ar+   )r'  r(  )rC   rD   Úreset_indexr’   rX   rY   )rÔ   r*   r]   r�   rŒ   Úarrayss         r)   Útest_write_ignoring_indexz#TestBasic.test_write_ignoring_indexÿ  s=  € õ Œ\ 	 	 	°°°Ð@Ð@ÑAÔAˆà'+°eÐ<Ð<ˆð —>’> t�>Ñ,Ô,ˆå˜˜V°,ÈÐRÑRÔRÐRõ Œ\Ø�)�) / / /Ð2Ð2Ð:OÐ:OÐ:Oð
ñ 
ô 
ˆõ 	˜˜V°,ÈÐRÑRÔRÐRð EÐDÐDØDÐDÐDð
ˆõ Œ\Ý�˜q™œ‘N”NÐ+AÐ+A½¸a¹¼Ð+AÑ+AÔ+AÐBÐBÈ&ð
ñ 
ô 
ˆð —>’> t�>Ñ,Ô,ˆÝ˜˜V°,ÈÐRÑRÔRÐRÐRÐRr+   c                 óN  — t           j                             g d¢¦  «        }t          j        t          j                             d¦  «                             d¦  «        |¬¦  «        }|dk    r|                      ||t          d¦  «         d S |dk    rt          ||¦  «         d S d S )Nr  r;   )rI   r<   rA   r   úColumn name must be a stringr    )rC   r  r  rD   rZ   r  r  r  r×   Ú	TypeErrorr’   )rÔ   r*   Ú
mi_columnsr]   s       r)   Útest_write_column_multiindexz&TestBasic.test_write_column_multiindex  s»   € å”]×.Ò.Ð/MÐ/MÐ/MÑNÔNˆ
ÝŒ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Àjð
ñ 
ô 
ˆð �]Ò"Ð"Ø×%Ò%Ø�F�IÐ'Eñô ð ð ð ð �yÒ Ð Ý˜R Ñ(Ô(Ð(Ð(Ð(ð !Ð r+   c                 ó8  — g d¢g d¢g}t          j        t          j                             d¦  «                             d¦  «        |¬¦  «        }ddg|j        _        |dk    r|                      ||t          d	¦  «         d S |d
k    rt          ||¦  «         d S d S )Nr$  )r:   r;   r:   r;   r:   r;   r:   r;   r;   ©r)  r)  rA   r  r  r   zColumn namer    )rC   rD   rZ   r  r  r  rB   r™   r×   r    r’   ©rÔ   r*   r/  r]   s       r)   Ú&test_write_column_multiindex_nonstringz0TestBasic.test_write_column_multiindex_nonstring-  s¾   € ð
 EÐDÐDØ$Ð$Ð$ð
ˆõ Œ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Àfð
ñ 
ô 
ˆð % hÐ/ˆŒ
ÔØ�]Ò"Ð"Ø×%Ò% b¨&µ*¸mÑLÔLÐLÐLÐLØ�yÒ Ð Ý˜R Ñ(Ô(Ð(Ð(Ð(ð !Ð r+   c                 óâ   — |}g d¢g d¢g}t          j        t          j                             d¦  «                             d¦  «        |¬¦  «        }ddg|j        _        t          ||¦  «         d S )Nr$  r&  r;   r7  rA   Ú	ColLevel1Ú	ColLevel2)	rC   rD   rZ   r  r  r  rB   r™   r’   ©rÔ   r1   r*   r/  r]   s        r)   Ú#test_write_column_multiindex_stringz-TestBasic.test_write_column_multiindex_string>  s‡   € ð ˆð EÐDÐDØDÐDÐDð
ˆõ Œ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Àfð
ñ 
ô 
ˆð (¨Ð5ˆŒ
Ôå˜˜VÑ$Ô$Ð$Ð$Ð$r+   c                 óÖ   — |}g d¢}t          j        t          j                             d¦  «                             d¦  «        |¬¦  «        }d|j        _        t          ||¦  «         d S )N)re   rf   r=   r%  r;   ©r)  rI   rA   Ú	StringCol)	rC   rD   rZ   r  r  r  rB   rÿ   r’   r=  s        r)   Útest_write_column_index_stringz(TestBasic.test_write_column_index_stringO  sp   € ð ˆð .Ð-Ð-ˆÝŒ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Àfð
ñ 
ô 
ˆð &ˆŒ
Œå˜˜VÑ$Ô$Ð$Ð$Ð$r+   c                 ó  — g d¢}t          j        t          j                             d¦  «                             d¦  «        |¬¦  «        }d|j        _        |dk    r|                      ||t          d¦  «         d S t          ||¦  «         d S )N©r:   r;   r<   rI   r;   r@  rA   ÚNonStringColr   r2  )rC   rD   rZ   r  r  r  rB   rÿ   r×   r3  r’   r8  s       r)   Ú!test_write_column_index_nonstringz+TestBasic.test_write_column_index_nonstring]  s    € ð ��ˆÝŒ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°VÑ<Ô<Àfð
ñ 
ô 
ˆð )ˆŒ
ŒØ�]Ò"Ð"Ø×%Ò%Ø�F�IÐ'Eñô ð ð ð õ ˜R Ñ(Ô(Ð(Ð(Ð(r+   c                 ó  — t          j        d¦  «        }|dk    r5t           j                             d¬¦  «        }|                     |¦  «         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 }| 
                    ||¦  «         t          ||¬¦  «        }t          ||d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |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.|                     dd¬¦  «        }|	                     dd¬¦  «        }	t          j        ||	¦  «         d S )Nzpyarrow.parquetr   z.Fastparquet nullable dtype support is disabledr   ©r:   r;   r<   NÚint64Úuint8)rS   rT   r`   N)TFTNrD  )ç      ð?ri   rj   NÚfloat32rL   )rS   rT   r`   rU   rV   rW   ÚgrÂ   Únumpy_nullable©r*   Údtype_backendrS   ÚInt64rM   ÚUInt8rl   ÚbooleanÚFloat32ÚFloat64r`   r:   )Úaxis)r.   Úimportorskipr5   r6   r4   r    Útabler   r‡   r‘   Úwrite_tabler   rN   rZ   rC   rD   r  rˆ   )
rÔ   r*   r(   Úpqr5   rX  r�   Úresult1Úresult2rŒ   s
             r)   Útest_dtype_backendzTestBasic.test_dtype_backendm  sá  € ÝÔ Ð!2Ñ3Ô3ˆà�]Ò"Ð"õ ”;×$Ò$ØGð %ñ ô ˆDð ×Ò Ñ%Ô%Ð%å”å”] ? ? ?°GÑ<Ô<Ý”] ? ? ?°GÑ<Ô<Ý”]Ð#8Ð#8Ð#8Ñ9Ô9Ý”]Ð#<Ð#<Ð#<Ñ=Ô=å”] < < <°Ñ9Ô9å”]Ð#8Ð#8Ð#8¸)ÑDÔDÝ”]Ð#8Ð#8Ð#8¸)ÑDÔDð
ð 
ñ
ô 
ˆõ Œ_ÑÔð 	X $à�NŠN˜5 $Ñ'Ô'Ð'Ý" 4°Ð7Ñ7Ô7ˆGÝ" 4°ÐFVÐWÑWÔWˆGð		Xð 	Xð 	Xñ 	Xô 	Xð 	Xð 	Xð 	Xð 	Xð 	Xð 	Xøøøð 	Xð 	Xð 	Xð 	Xð �sŒ|Ô!¥R¤X¨iÑ%8Ô%8Ò8Ð8Ð8Ð8Ý”<å”X˜o˜o˜o°WÐ=Ñ=Ô=Ý”X˜o˜o˜o°WÐ=Ñ=Ô=Ý”XÐ3Ð3Ð3¸8ÐDÑDÔDÝ”XÐ7Ð7Ð7¸yÐIÑIÔIÝ”X˜l˜l˜l°'Ð:Ñ:Ô:Ý”XÐ3Ð3Ð3¸9ÐEÑEÔEÝ”XÐ3Ð3Ð3¸9ÐEÑEÔEðð ñ

ô 

ˆð �]Ò"Ð"ð —l’l 3¨Q�lÑ/Ô/ˆGØ—}’} S¨q�}Ñ1Ô1ˆHÝ
Ô˜g xÑ0Ô0Ð0Ð0Ð0s   Ä:EÅEÅErN   )	rQ  rR  rS  Úobjectzdatetime64[ns, UTC]rs   z	period[D]rU  rl   c                 óè   — t          j        dt          j        g |¬¦  «        i¦  «        }d }|dk    r*t          j        dt          j        g d¬¦  «        i¦  «        }t          ||ddi|¬¦  «         d S )NÚvaluerM   rs   rU  rP  rN  r  )rC   rD   r   r’   )rÔ   r1   rN   r]   rŒ   s        r)   Útest_read_empty_arrayzTestBasic.test_read_empty_arrayž  sœ   € õ  Œ\à�œ "¨EÐ2Ñ2Ô2ðñ
ô 
ˆð ˆØ�GÒÐÝ”|à�RœX b°	Ð:Ñ:Ô:ðñô ˆHõ
 	Ø� Ð2BÐ CÈhð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óJ  — |dk    rt          j        |¦  «         t           |dddd¦  «        d¬¦  «        5 }|                     |                     ¦   «         ¬¦  «         t          |j        |¬	¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «         d S )
Nr®   ÚioÚdataÚparquetzsimple.parquetÚrb)Úmode)ÚcontentrÂ   )	r.   rW  ÚopenÚserve_contentÚreadr   Úurlr‡   rˆ   )rÔ   Ú
httpserverÚdatapathrF   r*   rW   r]   s          r)   Útest_parquet_read_from_urlz$TestBasic.test_parquet_read_from_url¿  så   € ð �VÒÐÝÔ Ñ'Ô'Ð'Ý�(�(˜4 ¨Ð4DÑEÔEÈDÐQÑQÔQð 	=ÐUVØ×$Ò$¨Q¯VªV©X¬XÐ$Ñ6Ô6Ð6Ý˜jœn°VÐ<Ñ<Ô<ˆBð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ 	Ô˜b )Ñ,Ô,Ð,Ð,Ð,s   ¸?BÂBÂ
BN)rÛ   rÜ   rÝ   rã   rç   r.   r5   Úparametrizerî   rò   rú   r  r  r  r0  r5  r9  r>  rB  rF  r]  ra  ÚnetworkÚ
single_cpuro  r0   r+   r)   rß   rß   —  sš  € € € € € ð	Dð 	Dð 	Dð%ð %ð %ð „[×Ò˜]Ð,NÐ,NÐ,NÑOÔOðPð Pñ PÔOðPð
ð 
ð 
ð
ð 
ð 
ð&%ð %ð %ð0%ð %ð %ðð ð ð&Sð Sð Sð@)ð )ð )ð)ð )ð )ð"%ð %ð %ð"%ð %ð %ð)ð )ð )ð /1ð /1ð /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                              e¦   «         d¬	¦  «        e
j                             e d
¬	¦  «        e
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                             ddgg g¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Ze
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)e
j                             d'd(d)g e
j*        d*d+ge
j                             e+e,d,¬-¦  «        ¬.¦  «         e-j-        d/d)d)d(d(¦  «         e-j-        d/d)d)d)d)¦  «        gg¦  «        d0„ ¦   «         Z.d1„ Z/d2„ Z0d3„ Z1e
j                             e2d4¬	¦  «        d5„ ¦   «         Z3d6„ Z4d7S )8ÚTestParquetPyArrowc                 óš   — |}t          j        ddd¬¦  «        }|                     d ¦  «        }||d<   g d¢|d<   t          ||¦  «         d S )NrP   r<   úEurope/Brussels©rR   ÚtzÚdatetime_tz©TNTÚbool_with_none)rC   r\   rþ   r’   )rÔ   r1   r|   r]   Údtis        r)   Ú
test_basiczTestParquetPyArrow.test_basicË  sb   € Øˆõ Œm˜J°Ð6GÐHÑHÔHˆØ�nŠn˜TÑ"Ô"ˆØˆˆ=ÑØ1Ð1Ð1ˆÐÑå˜˜RÑ Ô Ð Ð Ð r+   c                 ó|   — |}t          j        ddd¬¦  «        |d<   t          |||ddg         dddgi¬	¦  «         d S )
NrP   r<   rv  rw  ry  rl   rq   rB   rð   )rC   r\   r’   )rÔ   r1   r|   r]   s       r)   Útest_basic_subset_columnsz,TestParquetPyArrow.test_basic_subset_columnsÖ  sf   € ð ˆåœM¨*¸aÐDUÐVÑVÔVˆˆ=ÑåØØØ˜ 5Ð)Ô*Ø" X¨uÐ$5Ð6ð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó  — |                      |¬¦  «        }t          |t          ¦  «        sJ ‚t          |¦  «        }t	          |¦  «        }|                     ¦   «         }d |j        d<   t          j        ||¦  «         d S )NrÂ   r‚   )	r   r±   ro   r   r   r  r†   r‡   rˆ   )rÔ   r1   r|   Ú	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Ô1ˆ	Ý˜)¥UÑ+Ô+Ð+Ð+Ð+å˜YÑ'Ô'ˆ
Ý˜:Ñ&Ô&ˆà—<’<‘>”>ˆØ-1ˆŒÐ)Ñ*Ý
Ô˜c 8Ñ,Ô,Ð,Ð,Ð,r+   c                 óö   — t          j        t          j        d¦  «                             dd¦  «        t          d¦  «        ¬¦  «                             ¦   «         }|                      ||t          d¦  «         d S )Né   rI   r<   ÚaaarA   zDuplicate column names found©	rC   rD   rZ   r[   ÚreshaperX   r  r×   r    ©rÔ   r1   r]   s      r)   Útest_duplicate_columnsz)TestParquetPyArrow.test_duplicate_columnsð  sa   € åŒ\�"œ) B™-œ-×/Ò/°°1Ñ5Ô5½tÀE¹{¼{ÐKÑKÔK×PÒPÑRÔRˆØ×!Ò! " b­*Ð6TÑUÔUÐUÐUÐUr+   c                 óz   — t          j        dt          j        dd¬¦  «        i¦  «        }t          ||¦  «         d S )NrS   ú1 dayr<   rQ   )rC   rD   Útimedelta_ranger’   rŠ  s      r)   Útest_timedeltaz!TestParquetPyArrow.test_timedeltaõ  s<   € ÝŒ\˜3¥Ô 2°7ÀAÐ FÑ FÔ FÐGÑHÔHˆÝ˜˜RÑ Ô Ð Ð Ð r+   c                 óx   — t          j        dg d¢i¦  «        }|                      ||t          j        ¦  «         d S )NrS   ©rS   r:   ri   )rC   rD   rÚ   r    ÚArrowExceptionrŠ  s      r)   Útest_unsupportedz#TestParquetPyArrow.test_unsupportedù  s=   € åŒ\˜3   Ð.Ñ/Ô/ˆð 	×*Ò*¨2¨rµ7Ô3IÑJÔJÐJÐJÐJr+   c                 óê   — t          j        ddt           j        ¬¦  «        }t          j        |dg¬¦  «        }t
          r#|                      ||t          j        ¦  «         d S t          ||¦  «         d S )Nr;   é
   rM   Úfp16©rd  rB   )
rZ   r[   Úfloat16rC   rD   r   rÚ   r    r’  r’   )rÔ   r1   rd  r]   s       r)   Útest_unsupported_float16z+TestParquetPyArrow.test_unsupported_float16   sq   € õ Œy˜˜B¥b¤jÐ1Ñ1Ô1ˆÝŒ\˜t¨f¨XÐ6Ñ6Ô6ˆÝð 	%Ø×.Ò.¨r°2µwÔ7MÑNÔNÐNÐNÐ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  | 
                    ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j                             |¦  «        rJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr;   r•  rM   r–  r—  )r�   r*   )rZ   r[   r˜  rC   rD   r‡   r‘   rÙ   r    r’  r   Úosr�   Úisfile)rÔ   r1   rš  rd  r]   Úpath_strr�   s          r)   Ú test_unsupported_float16_cleanupz3TestParquetPyArrow.test_unsupported_float16_cleanup
  sL  € õ Œy˜˜B¥b¤jÐ1Ñ1Ô1ˆÝŒ\˜t¨f¨XÐ6Ñ6Ô6ˆåŒ_ÑÔð 	, (Ø�9˜XÑ&Ô&ˆDÝÔ)­'Ô*@ÑAÔAð 4ð 4Ø—’ 4°�Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å”w—~’~ dÑ+Ô+Ð+Ð+Ð+Ð+ð		,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s6   Á*CÁ6BÂCÂB	ÂCÂ!B	Â"$CÃCÃCc           
      ó  — t          j        t          j        t          d¦  «        ¦  «        t          j        g d¢t          j        g d¢¦  «        ¬¦  «        t          j        g d¢g d¢d¬¦  «        d	œ¦  «        }t          ||¦  «         d S )
NÚabcdef)re   r=   r=   re   Nre   rd   rM   )rS   rT   r`   rS   r`   rT   )rT   r`   rU   T)Ú
categoriesÚordered©rS   rT   r`   )rC   rD   ÚCategoricalrX   ÚCategoricalDtyper’   rŠ  s      r)   Útest_categoricalz#TestParquetPyArrow.test_categorical   s£   € åŒ\å”^¥D¨¡N¤NÑ3Ô3å”^Ø=Ð=Ð=ÝÔ-Ð.CÐ.CÐ.CÑDÔDðñ ô õ
 ”^Ø2Ð2Ð2Ø.˜˜Ø ðñ ô ðð ñ
ô 
ˆõ" 	˜˜RÑ Ô Ð Ð Ð r+   c                 óˆ   — t          j        d¦  «        } |j        di |¤Ž}d|i}t          |||j        › d�||¬¦  «         d S )NÚs3fsÚ
filesystemú/pyarrow.parquet©r�   rŽ   r�   r0   )r.   rW  ÚS3FileSystemr’   rÿ   )rÔ   rF   Ús3_public_bucketr1   Ús3sor©  Ús3Úkws           r)   Útest_s3_roundtrip_explicit_fsz0TestParquetPyArrow.test_s3_roundtrip_explicit_fs5  sp   € åÔ" 6Ñ*Ô*ˆØˆTÔÐ&Ð& Ð&Ð&ˆØ˜BÐˆÝØØØ$Ô)Ð;Ð;Ð;ØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óH   — d|i}t          ||d|j        › d�||¬¦  «         d S )NÚstorage_optionsús3://r«  r¬  ©r’   rÿ   )rÔ   rF   r®  r1   r¯  s        r)   Útest_s3_roundtripz$TestParquetPyArrow.test_s3_roundtripB  sM   € ð " 4Ð(ˆÝØØØ@Ð)Ô.Ð@Ð@Ð@ØØð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   Úpartition_colr?   c                 óV  — t          j        d¦  «         |                     ¦   «         }|rX|                     t                               |t          j        ¦  «        ¦  «        }d}||                              |¦  «        ||<   t          |||d|j	        › d�d|i|d |dœdd¬	¦  «         d S )
Nr©  Úcategoryrµ  z/parquet_dirr´  )rö   r€   r´  Tr:   )rŒ   r�   rŽ   r�   r„   r‰   )
r.   rW  r  ry   ÚdictÚfromkeysrZ   Úint32r’   rÿ   )rÔ   rF   r®  r1   r¸  r¯  Úexpected_dfÚpartition_col_types           r)   Útest_s3_roundtrip_for_dirz,TestParquetPyArrow.test_s3_roundtrip_for_dirN  sÚ   € õ 	Ô˜FÑ#Ô#Ð#à—n’nÑ&Ô&ˆð ð 	Ø%×,Ò,­T¯]ª]¸=Í"Ì(Ñ-SÔ-SÑTÔTˆKØ!+Ðà)4°]Ô)C×)JÒ)JØ"ñ*ô *ˆK˜Ñ&õ 	ØØØ Ø<Ð)Ô.Ð<Ð<Ð<Ø*¨DÐ1à"/Ø#Ø#'ðð ð
 Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 ó  — t          j        d¦  «         t          ¦   «         }|                     |¦  «         t	          |¦  «        }|r&t
          s|j                             d¦  «        |_        t          j	        ||¦  «         d S )Nr    r¤   )
r.   rW  r   r   r   r   rB   ry   r‡   rˆ   )rÔ   rF   r§   ÚbufferÚdf_from_bufs        r)   Útest_read_file_like_obj_supportz2TestParquetPyArrow.test_read_file_like_obj_supportu  s�   € ÝÔ˜IÑ&Ô&Ð&Ý‘”ˆØ×Ò˜VÑ$Ô$Ð$Ý" 6Ñ*Ô*ˆØð 	@Õ&:ð 	@Ø )Ô 1× 8Ò 8¸Ñ ?Ô ?ˆIÔÝ
Ô˜i¨Ñ5Ô5Ð5Ð5Ð5r+   c                 óœ  — t          j        d¦  «         |                     dd¦  «         |                     dd¦  «         t          j        t          d¬¦  «        5  t          d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  |                     d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr    ÚHOMEÚTestingUserÚUSERPROFILEz.*TestingUser.*r�   z~/file.parquet)r.   rW  ÚsetenvrŸ   ÚOSErrorr   r   )rÔ   rF   Úmonkeypatchs      r)   Útest_expand_userz#TestParquetPyArrow.test_expand_user~  sH  € ÝÔ˜IÑ&Ô&Ð&Ø×Ò˜6 =Ñ1Ô1Ð1Ø×Ò˜=¨-Ñ8Ô8Ð8ÝŒ]�7Ð*<Ð=Ñ=Ô=ð 	+ð 	+ÝÐ)Ñ*Ô*Ð*ð	+ð 	+ð 	+ñ 	+ô 	+ð 	+ð 	+ð 	+ð 	+ð 	+ð 	+øøøð 	+ð 	+ð 	+ð 	+åŒ]�7Ð*<Ð=Ñ=Ô=ð 	3ð 	3Ø× Ò Ð!1Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð 	3ð 	3s$   ÁA8Á8A<Á?A<ÂCÃCÃCc                 ó    — ddg}|}|                      ||d ¬¦  «         t          ||¦  «         t          |¦  «        j        |j        k    sJ ‚d S )Nru   rq   ©rö   r€   ©r   r›   r   Úshape)rÔ   rù   r1   r|   rö   r]   s         r)   Útest_partition_cols_supportedz0TestParquetPyArrow.test_partition_cols_supported‡  s\   € à  %˜ˆØˆØ
�Š�h¨~È4ˆÑPÔPÐPÝ˜h¨Ñ7Ô7Ð7Ý˜HÑ%Ô%Ô+¨r¬xÒ7Ð7Ð7Ð7Ð7Ð7r+   c                 ó¢   — d}|g}|}|                      ||d ¬¦  «         t          ||¦  «         t          |¦  «        j        |j        k    sJ ‚d S )Nru   rÎ  rÏ  )rÔ   rù   r1   r|   rö   Úpartition_cols_listr]   s          r)   Útest_partition_cols_stringz-TestParquetPyArrow.test_partition_cols_string�  sb   € àˆØ-Ð.ÐØˆØ
�Š�h¨~È4ˆÑPÔPÐPÝ˜hÐ(;Ñ<Ô<Ð<Ý˜HÑ%Ô%Ô+¨r¬xÒ7Ð7Ð7Ð7Ð7Ð7r+   c                 ó   — | S r$   r0   )Úxs    r)   ú<lambda>zTestParquetPyArrow.<lambda>™  s   €  Q€ r+   rl   zpathlib.Path)Úidsc                 ó–   — d}|g}|} ||¦  «        }|                      ||¬¦  «         t          |¦  «        j        |j        k    sJ ‚d S )Nr@   )rö   )r   r   rÐ  )	rÔ   rù   r1   rF   rš  rö   rÓ  r]   r�   s	            r)   Útest_partition_cols_pathlibz.TestParquetPyArrow.test_partition_cols_pathlib˜  sa   € ð ˆØ-Ð.ÐØˆàˆy˜Ñ"Ô"ˆØ
�Š�dÐ+>ˆÑ?Ô?Ð?Ý˜DÑ!Ô!Ô'¨2¬8Ò3Ð3Ð3Ð3Ð3Ð3r+   c                 óR   — t          j        g g ¬¦  «        }t          ||¦  «         d S )N)rü   rB   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¦  «        }|                     t          ¦  «        }t          ||d|i|¬¦  «         d S )Nr   rÖ  r:   )Útyper˜   r  )	r    rC   rD   r˜   ÚfieldÚbool_ry   ru   r’   )rÔ   r1   r    r]   r˜   Úout_dfs         r)   Útest_write_with_schemaz)TestParquetPyArrow.test_write_with_schema«  s€   € ØˆˆˆåŒ\˜3  A ˜-Ñ(Ô(ˆØ�”  ¤¨s¸¸¼¹¼Ð!IÑ!IÔ!IÐ JÑKÔKˆØ—’�4‘”ˆÝ˜˜R¨x¸Ð.@È6ÐRÑRÔRÐRÐRÐRr+   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          |||                     d	d
i¦  «        ¬¦  «         nt          ||¦  «         t          j        dt          j        g d¢d¬¦  «        i¦  «        }t          ||¦  «         d S )Nr    r9   rQ  rM   ÚUInt32ra   rl   r¤  r`   r¤   ©rŒ   rS   rH  )r.   rW  rC   rD   rá   r   r’   ry   )rÔ   r1   r§   r]   s       r)   Ú test_additional_extension_arraysz3TestParquetPyArrow.test_additional_extension_arrays³  sü   € õ 	Ô˜IÑ&Ô&Ð&ÝŒ\å”Y˜y˜y˜y°Ð8Ñ8Ô8Ý”Y˜y˜y˜y°Ð9Ñ9Ô9Ý”YÐ/Ð/Ð/°xÐ@Ñ@Ô@ðð ñ
ô 
ˆð ð 	%Õ"6ð 	%Ý˜R ¨b¯iªi¸¸e¸Ñ.EÔ.EÐFÑFÔFÐFÐFå˜R Ñ$Ô$Ð$åŒ\˜3¥¤	¨/¨/¨/ÀÐ IÑ IÔ IÐJÑKÔKˆÝ˜˜RÑ Ô Ð Ð Ð r+   c                 óè  — t          j        d¦  «         t          j        dt          j        g d¢d¬¦  «        i¦  «        }t          j        d|¦  «        5  |rVt          r|                     d¦  «        }n|                     d|› d	�¦  «        }|j                             d¦  «        |_        n|                     d|› d	�¦  «        }t          |||¬
¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr    rS   ra   ústring[pyarrow]rM   Ústring_storager¤   zstring[ú]rå  )
r.   rW  rC   rD   rá   r¦   r   ry   rB   r’   )rÔ   r1   ré  r§   r]   rŒ   s         r)   Ú test_pyarrow_backed_string_arrayz3TestParquetPyArrow.test_pyarrow_backed_string_arrayÆ  sF  € åÔ˜IÑ&Ô&Ð&ÝŒ\˜3¥¤	Ð*:Ð*:Ð*:ÐBSÐ TÑ TÔ TÐUÑVÔVˆÝÔÐ/°Ñ@Ô@ð 		8ð 		8Ø!ð BÝ'ð FØ!Ÿyšy¨Ñ/Ô/�H�Hà!ŸyšyÐ)D°>Ð)DÐ)DÐ)DÑEÔE�HØ#+Ô#3×#:Ò#:¸5Ñ#AÔ#A�Ô Ð àŸ9š9Ð%@¨~Ð%@Ð%@Ð%@ÑAÔA�Ý˜R ¨hÐ7Ñ7Ô7Ð7ð		8ð 		8ð 		8ñ 		8ô 		8ð 		8ð 		8ð 		8ð 		8ð 		8ð 		8ð 		8øøøð 		8ð 		8ð 		8ð 		8ð 		8ð 		8s   ÁBC'Ã'C+Ã.C+c                 óJ  — t          j        d¦  «         t          j        t          j                             g d¢¦  «        t          j        ddd¬¦  «        t          j                             t          j        ddd¬¦  «        ¦  «        dœ¦  «        }t          ||¦  «         d S )	Nr    ))r   r:   )r:   r;   )r<   rI   z
2012-01-01r<   ÚD)rR   r	  rI   )r`   rU   rV   )
r.   rW  rC   rD   ÚIntervalIndexr  Úperiod_rangeÚfrom_breaksr\   r’   rŠ  s      r)   Útest_additional_extension_typesz2TestParquetPyArrow.test_additional_extension_typesÕ  s¡   € õ 	Ô˜IÑ&Ô&Ð&ÝŒ\åÔ%×1Ò1Ð2JÐ2JÐ2JÑKÔKÝ”_ \¸1À3ÐGÑGÔGåÔ%×1Ò1Ý”M ,¸ÀÐDÑDÔDñô ð	ð ñ	
ô 	
ˆõ 	˜˜RÑ Ô Ð Ð Ð r+   c                 óˆ   — d}t          j        dt          j        ddd¬¦  «        i¦  «        }t          ||d|i¬¦  «         d S )	Nz2.6rS   z
2017-01-01Ú1nsr•  ©r	  rR   Úversionrì   )rC   rD   r\   r’   )rÔ   r1   Úverr]   s       r)   Útest_timestamp_nanosecondsz-TestParquetPyArrow.test_timestamp_nanosecondså  sO   € ð ˆÝŒ\˜3¥¤¨lÀÐPRÐ SÑ SÔ SÐTÑUÔUˆÝ˜˜R¨y¸#Ð.>Ð?Ñ?Ô?Ð?Ð?Ð?r+   c                 óh  — t          j        dd¦  «         d|gz  }t          j        |d|i¬¦  «        }|d d …         }t          r|j                             d¦  «        |_        |j        t          j	        j
        k    r¡	 dd l}|j        j                             |¦  «        }|                     |                     ¦   «         dz  ¦  «        }|j                             |¦  «        |_        |d         j                             |¦  «        |d<   n# t$          $ r Y nw xY wt'          ||d	|¬
¦  «         d S )Nr    ú11.0.0é   Úindex_as_col©rü   rd  Únsr   é<   F)r…   rŒ   )r.   rW  rC   rD   r	   rü   Úas_unitÚtzinforv   ÚtimezoneÚutcÚpytzrx  Ú	utcoffsetÚFixedOffsetÚtotal_secondsÚ
tz_convertÚdtr¸   r’   )	rÔ   r1   r~   Úidxr]   rŒ   r  Úoffsetrx  s	            r)   Útest_timezone_aware_indexz,TestParquetPyArrow.test_timezone_aware_indexí  sG  € ÝÔ˜I xÑ0Ô0Ð0àÐ+Ð,Ñ,ˆÝŒ\ ¨>¸3Ð*?Ð@Ñ@Ô@ˆð �a�a�a”5ˆÝð 	:Ø%œ^×3Ò3°DÑ9Ô9ˆHŒNØ#Ô*­hÔ.?Ô.CÒCÐCðVØ���ð œœ×.Ò.Ð/GÑHÔH�Ø×%Ò% f×&:Ò&:Ñ&<Ô&<¸rÑ&AÑBÔB�Ø!)¤×!:Ò!:¸2Ñ!>Ô!>�”Ø+3°NÔ+CÔ+F×+QÒ+QÐRTÑ+UÔ+U�˜Ñ(Ð(øõ ð ð ð Ø�ðøøøõ 	˜˜R¨U¸XÐFÑFÔFÐFÐFÐFs   Á?D Ä
DÄDc                 ób  — t          j        d¦  «         t          j        dt	          t          d¦  «        ¦  «        i¦  «        }t          j        ¦   «         5 }|                     ||¬¦  «         t          ||dg¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚d S )Nr    rS   r<   rÂ   ©rS   r÷   r   ©rø   r:   )r.   rW  rC   rD   rX   rY   r‡   r‘   r   r   r  )rÔ   r1   r]   r�   rÅ   s        r)   Útest_filter_row_groupsz)TestParquetPyArrow.test_filter_row_groups  sï   € åÔ˜IÑ&Ô&Ð&ÝŒ\˜3¥¥U¨1¡X¤X¡¤Ð/Ñ0Ô0ˆÝŒ_ÑÔð 	F $Ø�MŠM˜$ rˆMÑ*Ô*Ð*Ý! $¨°^Ð4DÐEÑEÔEˆFð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fõ �6‰{Œ{˜aÒÐÐÐÐÐs   Á+BÂBÂBc                 óî  — t          j        t          j                             d¦  «                             d¦  «        g d¢¬¦  «        }t          j        ¦   «         5 }|                     ||¬¦  «         t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |r-t          |j        t           j        j        j        ¦  «        sJ ‚d S t          |j        t           j        j        j        ¦  «        sJ ‚d S )Nr;   )r•  r<   )r?   r@   ÚCrA   rÂ   )rC   rD   rZ   r  r  r  r‡   r‘   r   r   r±   Ú_mgrÚcoreÚ	internalsÚArrayManagerÚBlockManager)rÔ   r1   Úusing_array_managerr]   r�   rÅ   s         r)   Útest_read_parquet_managerz,TestParquetPyArrow.test_read_parquet_manager  s  € åŒ\ÝŒI×!Ò! !Ñ$Ô$×4Ò4°WÑ=Ô=ÀÀÀð
ñ 
ô 
ˆõ Œ_ÑÔð 	, $Ø�MŠM˜$ rˆMÑ*Ô*Ð*Ý! $¨Ñ+Ô+ˆFð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ð 	KÝ˜fœk­2¬7Ô+<Ô+IÑJÔJÐJÐJÐJÐJÐJå˜fœk­2¬7Ô+<Ô+IÑJÔJÐJÐJÐJÐJÐJs   Á(BÂBÂBc                 ó&  — dd l }|}t          j        ddd¬¦  «        }|                     d ¦  «        }||d<   g d¢|d<   |j                             |¦  «        }|                     t          j        ¬	¦  «        }t          r||d
          	                    d¦  «        |d
<   |d          	                    d¦  «        |d<   |d          	                    t          j         |j
        dd¬¦  «        ¦  «        ¦  «        |d<   t          ||ddi|¬¦  «         d S )Nr   rP   r<   rv  rw  ry  rz  r{  )Útypes_mapperrv   ztimestamp[us][pyarrow]rw   Úus)Úunitrx  rP  r    ©r*   rŽ   rŒ   )r    rC   r\   rþ   ÚTableÚfrom_pandasÚ	to_pandasÚ
ArrowDtyper
   ry   Ú	timestampr’   )rÔ   r1   r|   r    r]   r|  Úpa_tablerŒ   s           r)   Ú&test_read_dtype_backend_pyarrow_configz9TestParquetPyArrow.test_read_dtype_backend_pyarrow_config%  sB  € Øˆˆˆàˆõ Œm˜J°Ð6GÐHÑHÔHˆØ�nŠn˜TÑ"Ô"ˆØˆˆ=ÑØ1Ð1Ð1ˆÐÑà”=×,Ò,¨RÑ0Ô0ˆØ×%Ò%µ2´=Ð%ÑAÔAˆÝð 	à#+¨JÔ#7×#>Ò#>Ð?WÑ#XÔ#XˆH�ZÑ Ø,4Ð5HÔ,I×,PÒ,PØ(ñ-ô -ˆHÐ(Ñ)ð '/¨}Ô&=×&DÒ&DÝ”Ð/˜gÔ/°TÐ>OÐPÑPÔPÑQÔQñ'ô 'ˆH�]Ñ#õ 	ØØØ(¨)Ð4Øð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óJ  — t          j        dddgit          j        ddgd¬¦  «        d¬	¦  «        }|                     ¦   «         }d
d l}t          |j        ¦  «        t          d¦  «        k    r|j                             d¦  «        |_        t          ||ddi|¬¦  «         d S )NrS   r:   r;   r<   rI   Útest©rÿ   zint64[pyarrow])rü   rN   r   rù  rP  r    r  )
rC   rD   rE   r  r    r   r·   rü   ry   r’   )rÔ   r1   r]   rŒ   r    s        r)   Ú,test_read_dtype_backend_pyarrow_config_indexz?TestParquetPyArrow.test_read_dtype_backend_pyarrow_config_indexC  s»   € ÝŒ\Ø�1�a�&ˆM¥¤¨1¨a¨&°vÐ!>Ñ!>Ô!>ÐFVð
ñ 
ô 
ˆð —7’7‘9”9ˆØˆˆˆå�7Ô&Ñ'Ô'­'°(Ñ*;Ô*;Ò;Ð;Ø%œ^×2Ò2Ð3CÑDÔDˆHŒNÝØØØ(¨)Ð4Øð		
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   rB   r   r:   rb   rc   z*https://github.com/apache/arrow/pull/44171)rŸ   r   r   éÛ  c           	      ó²   — t          j        t          d¦  «        t          t          dd¦  «        ¦  «        dœ¦  «        }||_        t          ||¦  «         d S )NrH   r:   rI   rå   ræ   )rÔ   r1   rB   r]   s       r)   Útest_columns_dtypes_not_invalidz2TestParquetPyArrow.test_columns_dtypes_not_invalidS  sN   € õ& Œ\¥T¨%¡[¤[½½eÀAÀq¹k¼kÑ9JÔ9JÐKÐKÑLÔLˆàˆŒ
Ý˜˜RÑ Ô Ð Ð Ð r+   c                 ó|   — t          j        t          j        g d¢d¬¦  «        ¬¦  «        }t          ||¦  «         d S )Nr¤  úcustom namer'  r#  ©rC   rD   rE   r’   rŠ  s      r)   Útest_empty_columnsz%TestParquetPyArrow.test_empty_columnsk  s=   € åŒ\¥¤¨¨¨¸}Ð MÑ MÔ MÐNÑNÔNˆÝ˜˜RÑ Ô Ð Ð Ð r+   c                 óÆ   — |dz  }t          j        ddgi¬¦  «        }ddi|_        |                     ||¬¦  «         t	          ||¬¦  «        }|j        |j        k    sJ ‚d S )Nztest_df_metadata.pr:   ©rd  Útest_attributerÂ   )rC   rD   Úattrsr   r   )rÔ   rù   r1   r�   r]   Únew_dfs         r)   Útest_df_attrs_persistencez,TestParquetPyArrow.test_df_attrs_persistencep  st   € ØÐ.Ñ.ˆÝŒ\  A 3˜xÐ(Ñ(Ô(ˆØ$ aÐ(ˆŒØ
�Š�d 2ˆÑ&Ô&Ð&Ý˜d¨2Ð.Ñ.Ô.ˆØŒ|˜rœxÒ'Ð'Ð'Ð'Ð'Ð'r+   c           	      ó  — |dz  }t          j        dddgiddg¬¦  «        }|                     ||¬¦  «         t          j        dd	¦  «        5  t	          ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   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        ||¦  «         d S )Nztest_string_inference.prS   rÖ  ÚyrT   )rd  rü   rÂ   úfuture.infer_stringT©Úna_valuerM   )rd  rN   rü   rB   )rC   rD   r   r¦   r   ÚStringDtyperZ   rx   rE   r   r^  r‡   rˆ   )	rÔ   rù   r1   r§   r�   r]   rÅ   rN   rŒ   s	            r)   Útest_string_inferencez(TestParquetPyArrow.test_string_inferencex  sY  € àÐ3Ñ3ˆÝŒ\  c¨3 ZÐ0¸¸c¸
ÐCÑCÔCˆØ
�Š�d 2ˆÑ&Ô&Ð&ÝÔÐ4°dÑ;Ô;ð 	3ð 	3Ý! $¨rÐ2Ñ2Ô2ˆFð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3å”­¬Ð/Ñ/Ô/ˆÝ”<Ø˜˜S�zÐ"ØÝ”(˜C ˜:¨UÐ3Ñ3Ô3Ý”HØ�å'ðØ0Bð•f�fàð	ñ ô ð	

ñ 

ô 

ˆõ 	Ô˜f hÑ/Ô/Ð/Ð/Ð/s   ÁA,Á,A0Á3A0znot supported before 11.0c           	      óº  — dd l }|dz  }t          j        dt          d¦  «        gid¬¦  «        }|                     ||                     d|                     d¦  «        fg¦  «        ¬¦  «         t          |¦  «        }t          rt          j        dd	gid
¬¦  «        }n&t          j        dt          d¦  «        gid¬¦  «        }t          j
        ||¦  «         d S )Nr   z	decimal.prS   z123.00rè  rM   rú  )r˜   Ú123zstring[python]r^  )r    rC   rD   r   r   r˜   Ú
decimal128r   r   r‡   rˆ   )rÔ   rù   r1   r�   r]   rÅ   rŒ   s          r)   Útest_roundtrip_decimalz)TestParquetPyArrow.test_roundtrip_decimal�  så   € ð 	ÐÐÐà˜+Ñ%ˆÝŒ\˜3¥¨Ñ!2Ô!2Ð 3Ð4Ð<MÐNÑNÔNˆØ
�Š�d 2§9¢9¨s°B·M²MÀ!Ñ4DÔ4DÐ.EÐ-FÑ#GÔ#GˆÑHÔHÐHÝ˜dÑ#Ô#ˆÝð 	PÝ”| S¨5¨' NÐ:JÐKÑKÔKˆHˆHå”| S­7°8Ñ+<Ô+<Ð*=Ð$>ÀhÐOÑOÔOˆHÝ
Ô˜f hÑ/Ô/Ð/Ð/Ð/r+   c           
      óD  — dd l }dd lm} |dz  }|                     d|                     g d¢|                     ¦   «         ¦  «        i¦  «        }|                     ||¦  «         t          j        dd¦  «        5  t          |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j
        dg d¢it          j        t          j        ¬¦  «        t          j        dgt          j        t          j        ¬¦  «        ¬¦  «        ¬	¦  «        }t          j        ||¦  «         d S )
Nr   zlarge_string.prS   )NrT   r`   r8  Tr9  rM   )rd  rN   rB   )r    Úpyarrow.parquetre  rX  r   Úlarge_stringrY  rC   r¦   r   rD   r;  rZ   rx   rE   r‡   rˆ   )rÔ   rù   r1   rZ  r�   rX  rÅ   rŒ   s           r)   Ú#test_infer_string_large_string_typez6TestParquetPyArrow.test_infer_string_large_string_typeœ  s_  € àÐÐÐØ$Ð$Ð$Ð$Ð$Ð$àÐ*Ñ*ˆà—’˜#˜rŸxšxÐ(8Ð(8Ð(8¸"¿/º/Ñ:KÔ:KÑLÔLÐMÑNÔNˆØ
�Š�u˜dÑ#Ô#Ð#åÔÐ4°dÑ;Ô;ð 	(ð 	(Ý! $Ñ'Ô'ˆFð	(ð 	(ð 	(ñ 	(ô 	(ð 	(ð 	(ð 	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(å”<ØÐ'Ð'Ð'Ð(Ý”.­"¬&Ð1Ñ1Ô1Ý”H˜c˜U­"¬.Å"Ä&Ð*IÑ*IÔ*IÐJÑJÔJð
ñ 
ô 
ˆõ
 	Ô˜f hÑ/Ô/Ð/Ð/Ð/s   Á:BÂBÂBN)5rÛ   rÜ   rÝ   r}  r  r„  r‹  r�  r“  r™  r.   r5   r6   r   Úskipifr   rp  r¤   ÚpathlibÚPathrŸ  r§  rr  r²  r·  rÀ  rÄ  rÌ  rÑ  rÔ  rÚ  rÜ  râ  ræ  rë  rñ  r÷  r  r  r  r$  r(  r&   r   ÚNotImplementedErrorrv   r+  r/  r5  r<  r	   r@  rD  r0   r+   r)   rt  rt  Ê  s  € € € € € ð	!ð 	!ð 	!ð
ð 
ð 
ð
-ð 
-ð 
-ðVð Vð Vð
!ð !ð !ðKð Kð Kð%ð %ð %ð „[×ÒØÐÑÔð?ð ñ ô ð „[×ÒÐ0Ð0Ð9NÐÑOÔOØ„[×Ò˜[¨3°´Ð*=Ñ>Ô>ð,ð ,ñ ?Ô>ñ PÔOñô ð,ð!ð !ð !ð* „[Ôð

ð 

ñ Ôð

ð „[Ôð	
ð 	
ñ Ôð	
ð „[ÔØ„[×ÒØàˆEØð	
ñô ð
ð 
ñô ñ Ôð
ð>6ð 6ð 6ð3ð 3ð 3ð8ð 8ð 8ð8ð 8ð 8ð „[×ÒØ�c˜;˜;Ð'¨h¸Ð-Gð ñ ô ð	4ð 	4ñô ð	4ð!ð !ð !ð
Sð Sð Sð!ð !ð !ð&8ð 8ð 8ð!ð !ð !ð @ð @ð @ðGð Gð GðB ð  ð  ðKð Kð Kð
ð 
ð 
ð<
ð 
ð 
ð  „[×ÒØà�ˆFØˆFŒLØ˜Ð Ø”k×'Ò'Ø(Ø.ØGð (ñ ô ðñ ô ð "�Ô! $¨¨1¨a°Ñ3Ô3Ø!�Ô! $¨¨1¨a°Ñ3Ô3ðð	
ñô ð$!ð !ñ%ô ð$!ð!ð !ð !ð
(ð (ð (ð0ð 0ð 0ð* „[×ÒÐ,Ð5PÐÑQÔQð0ð 0ñ RÔQð0ð0ð 0ð 0ð 0ð 0r+   rt  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e
j                              e¦   «         d¬¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze
j                              e¦   «         d¬¦  «        d„ ¦   «         ZdS )ÚTestParquetFastParquetc                 ó¾   — |}t          j        ddd¬¦  «        }|                     d ¦  «        }||d<   t          j        dd¬¦  «        |d<   t	          ||¦  «         d S )	NrP   r<   z
US/Easternrw  ry  r�  rQ   Ú	timedelta)rC   r\   rþ   rŽ  r’   )rÔ   r7   r|   r]   r|  s        r)   r}  z!TestParquetFastParquet.test_basic½  sg   € ØˆåŒm˜J°°lÐCÑCÔCˆØ�nŠn˜TÑ"Ô"ˆØˆˆ=ÑÝÔ,¨W¸aÐ@Ñ@Ô@ˆˆ;‰Ý˜˜RÑ Ô Ð Ð Ð r+   c           	      ó´  — t          j        t          d¦  «        t          t          dd¦  «        ¦  «        dœ¦  «        }t          }d}ddg|_        |                      ||||¦  «         ddg|_        |                      ||||¦  «         t          j        d	dddd¦  «        t          j        d	dddd¦  «        g|_        |                      ||||¦  «         d S )
NrH   r:   rI   rå   r2  r   rb   rc   r)  )rC   rD   rX   rY   r3  rB   r×   rv   )rÔ   r7   r]   Úerrr¡   s        r)   Útest_columns_dtypes_invalidz2TestParquetFastParquet.test_columns_dtypes_invalidÆ  sá   € ÝŒ\¥T¨%¡[¤[½½eÀAÀq¹k¼kÑ9JÔ9JÐKÐKÑLÔLˆåˆØ,ˆð ˜�VˆŒ
Ø×!Ò! " b¨#¨sÑ3Ô3Ð3ð ˜fÐ%ˆŒ
Ø×!Ò! " b¨#¨sÑ3Ô3Ð3õ Ô˜d A q¨!¨QÑ/Ô/ÝÔ˜d A q¨!¨QÑ/Ô/ð
ˆŒ
ð 	×!Ò! " b¨#¨sÑ3Ô3Ð3Ð3Ð3r+   c                 óú   — t          j        t          j        d¦  «                             dd¦  «        t          d¦  «        ¬¦  «                             ¦   «         }d}|                      ||t          |¦  «         d S )Nr†  rI   r<   r‡  rA   z9Cannot create parquet dataset with duplicate column namesrˆ  ©rÔ   r7   r]   r¡   s       r)   r‹  z-TestParquetFastParquet.test_duplicate_columnsÛ  se   € åŒ\�"œ) B™-œ-×/Ò/°°1Ñ5Ô5½tÀE¹{¼{ÐKÑKÔK×PÒPÑRÔRˆØIˆØ×!Ò! " b­*°cÑ:Ô:Ð:Ð:Ð:r+   c                 ó²  — dd l }t          |j        ¦  «        t          d¦  «        k     r]t          t          j        ¦  «        t          d¦  «        k    r3|                     t
          j                             d¬¦  «        ¦  «         t          j	        dg d¢i¦  «        }t          j	        ddt          j
        d	gid
¬¦  «        }t          |||d¬¦  «         d S )Nr   ú	2024.11.0z2.0.0z$fastparquet uses np.float_ in numpy2r   rS   )TNFrK  g        r˜  rM   F)rŒ   r…   )r   r   r·   rZ   r4   r.   r5   r6   rC   rD   rx   r’   )rÔ   r7   r(   r   r]   rŒ   s         r)   Útest_bool_with_nonez*TestParquetFastParquet.test_bool_with_noneá  së   € ØÐÐÐå�;Ô*Ñ+Ô+­g°kÑ.BÔ.BÒBÐBÅwÝŒNñH
ô H
å�WÑÔòHð Hð ×ÒÝ”×!Ò!ØBð "ñ ô ñô ð õ
 Œ\˜3Ð 3Ð 3Ð 3Ð4Ñ5Ô5ˆÝ”<  s­B¬F°CÐ&8Ð 9ÀÐKÑKÔKˆõ 	˜˜R¨(ÀÐFÑFÔFÐFÐFÐFr+   c                 ó  — t          j        dt          j        ddd¬¦  «        i¦  «        }|                      ||t          d ¦  «         t          j        dg d¢i¦  «        }d}|                      ||t          |¦  «         d S )NrS   Ú2013ÚMr<   rô  r‘  z"Can't infer object conversion type)rC   rD   rï  r×   r    rQ  s       r)   r“  z'TestParquetFastParquet.test_unsupportedò  s€   € åŒ\˜3¥¤°¸SÈ!Ð LÑ LÔ LÐMÑNÔNˆà×!Ò! " b­*°dÑ;Ô;Ð;õ Œ\˜3   Ð.Ñ/Ô/ˆØ2ˆØ×!Ò! " b­*°cÑ:Ô:Ð:Ð:Ð:r+   c                 ó�   — t          j        dt          j        t          d¦  «        ¦  «        i¦  «        }t	          ||¦  «         d S )NrS   rH   )rC   rD   r¥  rX   r’   )rÔ   r7   r]   s      r)   r§  z'TestParquetFastParquet.test_categoricalý  s<   € ÝŒ\˜3¥¤­t°E©{¬{Ñ ;Ô ;Ð<Ñ=Ô=ˆÝ˜˜RÑ Ô Ð Ð Ð r+   c                 óB  — dt          t          d¦  «        ¦  «        i}t          j        |¦  «        }t	          j        ¦   «         5 }|                     ||d d¬¦  «         t          ||dg¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |¦  «        dk    sJ ‚d S )NrS   r<   r:   )r*   r€   Úrow_group_offsetsr  r  )	rX   rY   rC   rD   r‡   r‘   r   r   r  )rÔ   r7   rU   r]   r�   rÅ   s         r)   r  z-TestParquetFastParquet.test_filter_row_groups  så   € Ø•$•u˜Q‘x”x‘.”.Ð!ˆÝŒ\˜!‰_Œ_ˆÝŒ_ÑÔð 	F $Ø�MŠM˜$ r°tÈqˆMÑQÔQÐQÝ! $¨°^Ð4DÐEÑEÔEˆFð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fõ �6‰{Œ{˜aÒÐÐÐÐÐs   Á-A?Á?BÂBc           	      óJ   — t          ||d|j        › d�d|id |dœ¬¦  «         d S )Nrµ  z/fastparquet.parquetr´  )r€   r´  r¬  r¶  )rÔ   rF   r®  r7   r¯  s        r)   r·  z(TestParquetFastParquet.test_s3_roundtrip	  sP   € õ 	ØØØDÐ)Ô.ÐDÐDÐDØ*¨DÐ1Ø)-À$ÐGÐGð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r+   c                 óþ   — ddg}|}|                      |d|d ¬¦  «         t          j                             |¦  «        sJ ‚dd l} |j        t          |¦  «        d¦  «        j        }t          |¦  «        dk    sJ ‚d S )Nru   rq   r   ©r*   rö   r€   r   Fr;   ©	r   rœ  r�   Úexistsr   ÚParquetFiler¤   Úcatsr  ©rÔ   rù   r7   r|   rö   r]   r   Úactual_partition_colss           r)   rÑ  z4TestParquetFastParquet.test_partition_cols_supported  s�   € à  %˜ˆØˆØ
�ŠØØ Ø)Øð	 	ñ 	
ô 	
ð 	
õ Œw�~Š~˜hÑ'Ô'Ð'Ð'Ð'ØÐÐÐà 7 Ô 7½¸H¹¼ÀuÑ MÔ MÔ RÐÝÐ(Ñ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r+   c                 óú   — d}|}|                      |d|d ¬¦  «         t          j                             |¦  «        sJ ‚dd l} |j        t          |¦  «        d¦  «        j        }t          |¦  «        dk    sJ ‚d S )Nru   r   r]  r   Fr:   r^  rb  s           r)   rÔ  z1TestParquetFastParquet.test_partition_cols_string$  s™   € àˆØˆØ
�ŠØØ Ø)Øð	 	ñ 	
ô 	
ð 	
õ Œw�~Š~˜hÑ'Ô'Ð'Ð'Ð'ØÐÐÐà 7 Ô 7½¸H¹¼ÀuÑ MÔ MÔ RÐÝÐ(Ñ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r+   c                 óþ   — ddg}|}|                      |dd |¬¦  «         t          j                             |¦  «        sJ ‚dd l} |j        t          |¦  «        d¦  «        j        }t          |¦  «        dk    sJ ‚d S )Nru   rq   r   )r*   r€   Úpartition_onr   Fr;   r^  rb  s           r)   Útest_partition_on_supportedz2TestParquetFastParquet.test_partition_on_supported4  s�   € à  %˜ˆØˆØ
�ŠØØ ØØ'ð	 	ñ 	
ô 	
ð 	
õ Œw�~Š~˜hÑ'Ô'Ð'Ð'Ð'ØÐÐÐà 7 Ô 7½¸H¹¼ÀuÑ MÔ MÔ RÐÝÐ(Ñ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r+   c                 ó²   — ddg}|}d}t          j        t          |¬¦  «        5  |                     |dd ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nru   rq   zYCannot use both partition_on and partition_cols. Use partition_cols for partitioning datar�   r   )r*   r€   rf  rö   )r.   rŸ   r    r   )rÔ   rù   r7   r|   rö   r]   r¡   s          r)   Ú3test_error_on_using_partition_cols_and_partition_onzJTestParquetFastParquet.test_error_on_using_partition_cols_and_partition_onD  sÁ   € ð ! %˜ˆØˆð ð 	õ Œ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�MŠMØØ$Ø Ø+Ø-ð ñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¤AÁAÁAzfastparquet writes into Indexr   c                 óx   — t          j        ¦   «         }|                     ¦   «         }t          |||¬¦  «         d S )Nrå  )rC   rD   r  r’   ©rÔ   r7   r]   rŒ   s       r)   rÜ  z+TestParquetFastParquet.test_empty_dataframeW  s7   € õ Œ\‰^Œ^ˆØ—7’7‘9”9ˆÝ˜˜R¨(Ð3Ñ3Ô3Ð3Ð3Ð3r+   c                 ó¨  — dd l }t          |j        ¦  «        t          d¦  «        k    rXt          |j        ¦  «        t          d¦  «        k     r3|                     t          j                             d¬¦  «        ¦  «         d|gz  }t          j        |d|i¬¦  «        }| 	                    ¦   «         }d	|j
        _        t          |||¬
¦  «         d S )Nr   z2022.12rS  zCfastparquet bug, see https://github.com/dask/fastparquet/issues/929r   rú  rû  rü  rü   rå  )r   r   r·   r4   r.   r5   r6   rC   rD   r  rü   rÿ   r’   )rÔ   r7   r~   r(   r   r	  r]   rŒ   s           r)   r  z0TestParquetFastParquet.test_timezone_aware_index^  sì   € ØÐÐÐå�;Ô*Ñ+Ô+­g°iÑ.@Ô.@Ò@Ð@ÅWØÔ#ñF
ô F
å�KÑ Ô òF!ð F!ð ×ÒÝ”×!Ò!ðIð "ñ ô ñô ð ð Ð+Ð,Ñ,ˆåŒ\ ¨>¸3Ð*?Ð@Ñ@Ô@ˆà—7’7‘9”9ˆØ%ˆŒÔÝ˜˜R¨(Ð3Ñ3Ô3Ð3Ð3Ð3r+   c                 ó.  — t          j        dddgi¦  «        }t          j        ¦   «         5 }|                     |¦  «         t          j        t          d¬¦  «        5  t          j        t          ¦  «        5  t          |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          |dd	¬
¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NrS   r:   r;   z!not supported for the fastparquetr�   r   T)r*   Úuse_nullable_dtypesr    rO  )rC   rD   r‡   r‘   r   r.   rŸ   r    rÍ   rÎ   r   )rÔ   r7   r]   r�   s       r)   Ú&test_use_nullable_dtypes_not_supportedz=TestParquetFastParquet.test_use_nullable_dtypes_not_supportedu  sI  € ÝŒ\˜3  A ˜-Ñ(Ô(ˆåŒ_ÑÔð 	R $Ø�MŠM˜$ÑÔÐÝ”�zÐ1TÐUÑUÔUð Wð WÝÔ/µÑ>Ô>ð Wð WÝ  ¨mÐQUÐVÑVÔVÐVðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð WðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wõ ”�zÐ1TÐUÑUÔUð Rð RÝ˜T¨-ÀyÐQÑQÔQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð	Rð 	Rð 	Rñ 	Rô 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rð 	Røøøð 	Rð 	Rð 	Rð 	Rð 	Rð 	Rs}   ¬1D
ÁB-Á7BÂ
B-ÂBÂB-ÂBÂB-Â!D
Â-B1	Â1D
Â4B1	Â5D
ÃC2Ã&D
Ã2C6	Ã6D
Ã9C6	Ã:D
Ä
DÄDc                 ó†  — t          j        d¦  «        5 }t          j        |¦  «                             d¦  «         t          j        t          d¬¦  «        5  t          |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |¦  «         	                    d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nútest.parquets   breakitÚ r�   r   rÂ   F)Ú
missing_ok)
r‡   r‘   rF  rG  Úwrite_bytesr.   rŸ   Ú	Exceptionr   Úunlink)rÔ   r�   s     r)   Ú$test_close_file_handle_on_read_errorz;TestParquetFastParquet.test_close_file_handle_on_read_error€  s1  € ÝŒ_˜^Ñ,Ô,ð 	8°ÝŒL˜ÑÔ×*Ò*¨:Ñ6Ô6Ð6Ý”�y°Ð3Ñ3Ô3ð 9ð 9Ý˜T¨-Ð8Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ ŒL˜ÑÔ×%Ò%°Ð%Ñ7Ô7Ð7ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s6   •AB6ÁA6Á*B6Á6A:	Á:B6Á=A:	Á>+B6Â6B:Â=B:c                 ó€  — t          j        ddgddgdœ¬¦  «        }t          j        d¦  «        5 }t	          |                     ¦   «         d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        ||¦  «         d S )Nr   r:   r>   r1  rq  ÚwbrÂ   )	rC   rD   r‡   r‘   ri  Úencoder   r   rˆ   )rÔ   r*   r]   r�   rW   rÅ   s         r)   Útest_bytes_file_namez+TestParquetFastParquet.test_bytes_file_nameˆ  s1  € åŒ\ a¨ V°1°a°&Ð9Ð9Ð:Ñ:Ô:ˆÝŒ_˜^Ñ,Ô,ð 	7°Ý�d—k’k‘m”m TÑ*Ô*ð !¨aØ—’˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õ " $¨vÐ6Ñ6Ô6ˆFð		7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7õ
 	Ô˜f bÑ)Ô)Ð)Ð)Ð)s5   ±#BÁA6Á*BÁ6A:	Á:BÁ=A:	Á>BÂB"Â%B"c                 ó‚  — t          j        d¦  «         t          j        ddgddgdœ¬¦  «        }t	          j        ¦   «         5 }t          j        t          d¬¦  «        5  |                     |dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         5 }t          j
        |¦  «                             d
¦  «         t          j        t          d¬¦  «        5  t          |dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r:   r>   r1  zfilesystem is not implementedr�   r=   ©r*   rª  rb   )r.   rW  rC   rD   r‡   r‘   rŸ   rH  r   rF  rG  rt  r   ©rÔ   r]   r�   s      r)   Útest_filesystem_notimplementedz5TestParquetFastParquet.test_filesystem_notimplemented’  s~  € ÝÔ˜MÑ*Ô*Ð*ÝŒ\ a¨ V°1°a°&Ð9Ð9Ð:Ñ:Ô:ˆÝŒ_ÑÔð 	L $Ý”Ý#Ð+Jðñ ô ð Lð Lð —’˜d¨=ÀU�ÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lõ Œ_ÑÔð 	K $ÝŒL˜ÑÔ×*Ò*¨6Ñ2Ô2Ð2Ý”Ý#Ð+Jðñ ô ð Kð Kõ ˜T¨-ÀEÐJÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Kð 	Kóm   ÁBÁ BÁ9BÂB		Â	BÂB		ÂBÂB Â#B Â:AD4Ã=DÄD4ÄD 	Ä D4Ä#D 	Ä$D4Ä4D8Ä;D8c                 ó‚  — t          j        d¦  «         t          j        ddgddgdœ¬¦  «        }t	          j        ¦   «         5 }t          j        t          d¬¦  «        5  |                     |dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         5 }t          j
        |¦  «                             d
¦  «         t          j        t          d¬¦  «        5  t          |dd¬	¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr    r   r:   r>   r1  z1filesystem must be a pyarrow or fsspec FileSystemr�   r=   r}  rb   )r.   rW  rC   rD   r‡   r‘   rŸ   r    r   rF  rG  rt  r   r~  s      r)   Útest_invalid_filesystemz.TestParquetFastParquet.test_invalid_filesystem¢  s~  € ÝÔ˜IÑ&Ô&Ð&ÝŒ\ a¨ V°1°a°&Ð9Ð9Ð:Ñ:Ô:ˆÝŒ_ÑÔð 	H $Ý”ÝÐ"Uðñ ô ð Hð Hð —’˜d¨9À�ÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hõ Œ_ÑÔð 	G $ÝŒL˜ÑÔ×*Ò*¨6Ñ2Ô2Ð2Ý”ÝÐ"Uðñ ô ð Gð Gõ ˜T¨)ÀÐFÑFÔFÐFðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gr€  c           	      óÖ  — t          j        d¦  «        }t          j        ddgddgdœ¬¦  «        }t	          j        ¦   «         5 }t          j        t          d¬¦  «        5  |                     |d| 	                    ¦   «         d	d
i¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t	          j        ¦   «         5 }t          j        |¦  «                             d¦  «         t          j        t          d¬¦  «        5  t          |d| 	                    ¦   «         d	d
i¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nz
pyarrow.fsr   r:   r>   r1  z8storage_options not supported with a pyarrow FileSystem.r�   r    r=   re   )r*   rª  r´  rb   )r.   rW  rC   rD   r‡   r‘   rŸ   rH  r   ÚLocalFileSystemrF  rG  rt  r   )rÔ   Úpa_fsr]   r�   s       r)   Ú.test_unsupported_pa_filesystem_storage_optionszETestParquetFastParquet.test_unsupported_pa_filesystem_storage_options²  su  € ÝÔ# LÑ1Ô1ˆÝŒ\ a¨ V°1°a°&Ð9Ð9Ð:Ñ:Ô:ˆÝŒ_ÑÔð 
	 $Ý”Ý#ØPðñ ô ð 	ð 	ð —’ØØ$Ø$×4Ò4Ñ6Ô6Ø%*¨E Nð	 ñ ô ð ð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	õ Œ_ÑÔð 	 $ÝŒL˜ÑÔ×*Ò*¨6Ñ2Ô2Ð2Ý”Ý#ØPðñ ô ð 	ð 	õ ØØ$Ø$×4Ò4Ñ6Ô6Ø%*¨E Nð	ñ ô ð ð		ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sm   ÁB1Á .BÂB1ÂB	ÂB1Â!B	Â"B1Â1B5Â8B5ÃAEÄ(EÄ:EÅE
	Å
EÅE
	ÅEÅE"Å%E"c           	      óx  — d}t          j        dt          t          dd¦  «        ¦  «        i¦  «        }t	          j        d¦  «        5 }|                     |¦  «         t          j        t          |¬¦  «        5  t          |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rq   r:   rI   ztmp.parquetr�   Únumpy)rP  )rC   rD   rX   rY   r‡   r‘   r   r.   rŸ   r    r   )rÔ   r*   r¡   r]   r�   s        r)   Útest_invalid_dtype_backendz1TestParquetFastParquet.test_invalid_dtype_backendÎ  s2  € ð%ð 	õ Œ\˜5¥$¥u¨Q°¡{¤{Ñ"3Ô"3Ð4Ñ5Ô5ˆÝŒ_˜]Ñ+Ô+ð 	:¨tØ�MŠM˜$ÑÔÐÝ”�z°Ð5Ñ5Ô5ð :ð :Ý˜T°Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s6   Á1B/Á9BÂB/ÂB	ÂB/ÂB	ÂB/Â/B3Â6B3c                 óÖ   — t          j        t          j        g d¢d¬¦  «        ¬¦  «        }t          j        t          j        g d¢d¬¦  «        ¬¦  «        }t          |||¬¦  «         d S )Nr¤  r-  r'  r#  rå  r.  rk  s       r)   r/  z)TestParquetFastParquet.test_empty_columnsÙ  si   € õ Œ\¥¤¨¨¨¸}Ð MÑ MÔ MÐNÑNÔNˆÝ”<¥b¤h¨¨¨À]Ð&SÑ&SÔ&SÐTÑTÔTˆÝ˜˜R¨(Ð3Ñ3Ô3Ð3Ð3Ð3r+   N)rÛ   rÜ   rÝ   r}  rO  r‹  rT  r“  r§  r  r.   r5   rr  r·  rÑ  rÔ  rg  ri  rE  r   rÜ  r  ro  rw  r{  r  r‚  r†  r‰  r/  r0   r+   r)   rJ  rJ  ¼  sØ  € € € € € ð!ð !ð !ð4ð 4ð 4ð*;ð ;ð ;ðGð Gð Gð"	;ð 	;ð 	;ð!ð !ð !ð ð  ð  ð „[Ôð
ð 
ñ Ôð
ð/ð /ð /ð /ð /ð /ð /ð /ð /ð ð ð ð& „[×ÒÐ+Ð+Ñ-Ô-Ð6UÐÑVÔVð4ð 4ñ WÔVð4ð4ð 4ð 4ð.	Rð 	Rð 	Rð8ð 8ð 8ð*ð *ð *ðKð Kð Kð Gð Gð Gð ð ð ð8	:ð 	:ð 	:ð „[×ÒÐ+Ð+Ñ-Ô-Ð6UÐÑVÔVð4ð 4ñ WÔVð4ð 4ð 4r+   rJ  )	NNNNNTFTr;   )MÚ__doc__rv   Údecimalr   rc  r   rœ  rF  rˆ  rZ   r.   Úpandas._configr   r   Úpandas._config.configr   Úpandas.compatr   Úpandas.compat.pyarrowr	   r
   r   r   r   ÚpandasrC   Úpandas._testingÚ_testingr‡   Úpandas.util.versionr   Úpandas.io.parquetr   r   r   r   r   r    r-   r¸   r   r3   r5   ÚfilterwarningsÚ
pytestmarkÚfixturer&   rE  r6   r*   r1   r7   rF   r^   r|   Únowr  r  ÚminÚmaxÚstrptimer~   r’   r›   r¢   r¨   r«   r¯   r²   r¿   rÆ   rÉ   rÏ   rÑ   rß   rt  rJ  r0   r+   r)   ú<module>r�     s+  ðØ Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -à -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð ð ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð ð ð ð ð ð ð ð ð ð ð ðØ€N€N€Nà€M€MøØð ð ð Ø€M€M€MðøøøðØÐÐÐàÐÐøØð ð ð ØÐÐÐðøøøð „K×ÒÐSÑTÔTØ
„K×ÒØGñô ð€
ð €„àˆŒØà”×"Ò"Ø)Ð)ð PØ"�{Ð#6¸tÐDÑDÔDÈÒOØQð #ñ ô ð
 ”×!Ò!Ø&Ð&Ñ(Ô(Ø;Ø ð "ñ ô ðð	
ñ 	
ô 	
ð 	ˆŒØØ”+×$Ò$Ø!Ð!Ð*Dð %ñ ô ð	
ñ 	
ô 	
ð!ðñ ô ð2ð ñ3ô ð2ð „ðð ñ „ðð „ð	ð 	ñ „ð	ð „ðTð Tñ „ðTð „ðð ñ „ðð" „ðð ñ „ðð. €„àÔ×Ò˜hÔ/Ô3Ñ4Ô4ØÔ×Ò˜hÔ/Ô3Ñ4Ô4ØÔ×Ò˜hÔ/Ô3Ñ4Ô4ØÔ×"Ò"Ð#=Ð?TÑUÔUØÔ×"Ò"Ð#=Ð?TÑUÔUØÔ×"Ò"Ð#=Ð?TÑUÔUØÔ×"Ò"Ð#=Ð?TÑUÔUðð
ñ 
ô 
ðð ñ
ô 
ðð Ø	ØØØØØØØð?ð ?ð ?ð ?ðD9ð 9ð 9ð 2ð 2ð 2ð$ð $ð $ð$ð $ð $ð$ð $ð $ðFð Fð Fð((#ð (#ð (#ðV6ð 6ð 6ð
6ð 
6ð 
6ð(ð (ð (ð"?ð ?ð ?ð ?ð ?ñ ?ô ?ð ?ðp-ð p-ð p-ð p-ð p-�ñ p-ô p-ð p-ðf	c0ð c0ð c0ð c0ð c0˜ñ c0ô c0ð c0ðdb4ð b4ð b4ð b4ð b4˜Tñ b4ô b4ð b4ð b4ð b4s$   Á$A+ Á+A5Á4A5Á9B  Â B
Â	B
