ó
    ®œ‘h„Ï  ã                   óH  • S r SSKrSSKJr  SSKJr  SSKrSSKrSSKr	SSK
r
SSKJrJr  SSKJr  SSKJr  SSKJrJrJrJrJr  SSKrSSKJr  SS	KJr  SS
KJ r J!r!J"r"J#r#J$r$   SSK%r%Sr& SSK(r(Sr)\
RT                  RW                  S5      \
RT                  RW                  S5      /r,\
RZ                  " \
R\                  " S\
RT                  R_                  \)(       + =(       d
    \" SSS9S:H  SS9\
RT                  Ra                  \" 5       SSS9/S9\
R\                  " S\
RT                  R_                  \&(       + SS9S9/S9S 5       r1\
RZ                  S 5       r2\
RZ                  S 5       r3\
RZ                  S 5       r4\
RZ                  S 5       r5\
RZ                  S  5       r6\
RZ                  " \R                  Ro                  \Rp                  Rr                  5      \R                  Ro                  \Rp                  Rt                  5      \R                  Ro                  \Rp                  Rv                  5      \R                  Ry                  S!S"5      \R                  Ry                  S#S"5      \R                  Ry                  S$S"5      \R                  Ry                  S%S"5      /S9S& 5       r=         S:S' jr>S( r?S) r@S* rAS+ rBS, rCS- rDS. rES/ rFS0 rGS1 rH " S2 S35      rI " S4 S5\I5      rJ " S6 S7\I5      rK " S8 S9\I5      rLg! \' a    Sr& GN§f = f! \' a    Sr) GN¯f = f);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                 ó   • U R                   $ ©N©Úparam©Úrequests    Ú`C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/io/test_parquet.pyÚenginer*   @   s   € ð4 �=‰=Ðó    c                  óF   • [         (       d  [        R                  " S5        g)Nr!   r    )Ú_HAVE_PYARROWÚpytestÚskip© r+   r)   Úpar1   ]   s   € çŠ=Ü�ŠÐ.Ô/Ør+   c                 ó  • [         (       d  [        R                  " S5        O$[        SSS9S:X  a  [        R                  " S5        [	        5       (       a-  U R                  [        R                  R                  SSS	95        g
)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   sf   € çÒÜ�ŠÐ2Õ3Ü	Ð(°Ñ	6¸'Ó	AÜ�ŠÐDÔEÜ×ÑØ×ÑÜ�K‰K×ÑÐ%EÈeÐÐTô	
ð r+   c                  ób   • [         R                  " / SQSS.[         R                  " SS/5      S9$ )N©é   é   é   Úfoo©ÚAÚBr?   r@   ©Úcolumns)ÚpdÚ	DataFrameÚIndexr0   r+   r)   Ú	df_compatrF   q   s%   € ä�<Š<ši¨eÑ4¼b¿hºhÈÈSÀzÓ>RÑSÐSr+   c                  óÈ   • [         R                  " [        S5      [        [        SS5      5      [        R
                  " SSSS9/ SQ[         R                  " S	S
S9S.5      n U $ )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   sR   € ä	�Šä�e“Ü”e˜A˜q“kÓ"ä—’˜3 ¨9Ñ5Ú$Ü—’˜z°1Ñ5ñ
	
ó
€Bð €Ir+   c                  óÜ  • [         R                  " [        S5      S[        R                  S// SQ/ SQ/ SQ[        [        SS5      5      [        R                  " S	S
5      R                  S5      [        R                  " SSSS9S[        R                  S// SQ[         R                  " SS	S9[         R                  " S5      [         R                  [         R                  " S5      /S.5      $ )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Ø #¤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                 ó   • U R                   $ r$   r%   r'   s    r)   Útimezone_aware_date_listr~       s   € ð �=‰=Ðr+   c
                 ó  ^ ^^^^^^^• T=(       d    SS0mT=(       d    0 mTc  T mU(       a
  UTS'   UTS'   UUUU UUUU4S jn
Tc'  [         R                  " 5        mU
" U	5        SSS5        gU
" U	5        g! , (       d  f       g= f)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           	      óÂ   >• [        U 5       HO  nTR                  " T40 T
D6  [        T40 T	D6nST;   a  S TR                  S'   [        R
                  " TUTTTS9  MQ     g )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)   ÚcompareÚ!check_round_trip.<locals>.compareÛ   se   ø€ Ü�v–ˆAØ�MŠM˜$Ñ/ ,Ò/Ü! $Ñ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Ñ÷ô ð �|Ü�_Š_Ô $Ù�FŒO÷ Ðñ 	��÷ Õús   Á	A7Á7
Bc                 ó|   • SSK Jn  UR                  U SS9nUR                  R                  R                  U:X  d   eg)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                 óˆ   • Sn[         R                  " [        US9   [        U SS5        S S S 5        g ! , (       d  f       g = f)Nz.engine must be one of 'pyarrow', 'fastparquet'©Úmatchr=   re   )r.   ÚraisesÚ
ValueErrorr“   )rF   Úmsgs     r)   Útest_invalid_enginer£     s-   € Ø
:€CÜ	�Š”z¨Ó	-Ü˜ E¨5Ô1÷ 
.×	-Ö	-ús	   œ3³
Ac                 óà   • U(       a+  [         (       d   U R                  R                  S5      U l        [        R                  " SS5         [        U 5        S S S 5        g ! , (       d  f       g = f)NÚstrúio.parquet.enginer    )r   rB   ry   rC   Úoption_contextr“   )rF   r1   Úusing_infer_strings      r)   Útest_options_pyr©     sI   € æ×"6Ò"6Ø%×-Ñ-×4Ñ4°UÓ;ˆ	Ôä	×	Ò	Ð.°	Õ	:Ü˜Ô#÷ 
;×	:Ö	:ús   Á
AÁ
A-c                 ó|   • [         R                  " SS5         [        U 5        S S S 5        g ! , (       d  f       g = f)Nr¦   r   ©rC   r§   r“   )rF   r7   s     r)   Útest_options_fpr¬     s)   € ô 
×	Ò	Ð.°Õ	>Ü˜Ô#÷ 
?×	>Ö	>úó   ˜-­
;c                 ó|   • [         R                  " SS5         [        U 5        S S S 5        g ! , (       d  f       g = f)Nr¦   Úautor«   )rF   r7   r1   s      r)   Útest_options_autor°     s)   € ô 
×	Ò	Ð.°Õ	7Ü˜Ô#÷ 
8×	7Ö	7úr­   c                 óò  • [        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e[        R
                  " SS5         [        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e S S S 5        [        R
                  " SS5         [        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e S S S 5        [        R
                  " SS5         [        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e[        [        S5      [        5      (       d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       N¢= f! , (       d  f       g = f)Nr    r   r¦   r¯   )Ú
isinstancer   r   r   rC   r§   )r7   r1   s     r)   Útest_options_get_enginer³     sn  € Ü”j Ó+¬[×9Ñ9Ð9Ð9Ü”j Ó/´×AÑAÐAÐAä	×	Ò	Ð.°	Õ	:Üœ* VÓ,¬k×:Ñ:Ð:Ð:Üœ* YÓ/´×=Ñ=Ð=Ð=Üœ* ]Ó3´_×EÑEÐEÑE÷ 
;ô
 
×	Ò	Ð.°Õ	>Üœ* VÓ,¬o×>Ñ>Ð>Ð>Üœ* YÓ/´×=Ñ=Ð=Ð=Üœ* ]Ó3´_×EÑEÐEÑE÷ 
?ô
 
×	Ò	Ð.°Õ	7Üœ* VÓ,¬k×:Ñ:Ð:Ð:Üœ* YÓ/´×=Ñ=Ð=Ð=Üœ* ]Ó3´_×EÑEÐEÑE÷ 
8Ð	7÷ 
;Ö	:ú÷
 
?Õ	>ú÷
 
8Õ	7ús'   ÁA!GÃA!GÅA!G(Ç
GÇ
G%Ç(
G6c                  ó¼  • SSK Jn   U R                  S5      nU R                  S5      n[        (       d  SO$[	        [
        R                  5      [	        U5      :  n[        (       d  SO$[	        [        R                  5      [	        U5      :  n[        =(       a    U(       + n[        =(       a    U(       + nU(       dÝ  U(       dÕ  U(       a4  SU S3n[        R                  " [        US9   [        S	5        S S S 5        O/S
n[        R                  " [        US9   [        S	5        S S S 5        U(       a4  SU S3n[        R                  " [        US9   [        S	5        S S S 5        g Sn[        R                  " [        US9   [        S	5        S S S 5        g g g ! , (       d  f       N{= f! , (       d  f       NŒ= f! , (       d  f       g = f! , (       d  f       g = f)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  sp  € õ 1ð —‘˜iÓ(€JØ—‘˜mÓ,€J÷ Š}ñ 	ä”W×(Ñ(Ó)¬G°JÓ,?Ñ?ð ÷ !Ò ñ 	ä”[×,Ñ,Ó-´¸
Ó0CÑCð ô #×>Ð+>Ô'>€NÜ&×BÐ/BÔ+B€Næ¦.æØ/°
¨|Ð;RÐSˆEÜ—’œ{°%Ó8Ü˜6Ô"÷ 9Ð8ð <ˆEÜ—’œ{°%Ó8Ü˜6Ô"÷ 9ö Ø/°
¨|Ð;VÐWˆEÜ—’œ{°%Ó8Ü˜6Ô"÷ 9Ð8ð @ˆEÜ—’œ{°%Ó8Ü˜6Ô"÷ 9Ð8ð# #1ˆ>÷ 9Õ8ú÷ 9Õ8ú÷
 9Õ8ú÷ 9Õ8ús0   Ã)FÄF+ÅF<ÆGÆ
F(Æ+
F9Æ<
G
Ç
Gc                 ó  • U n[         R                  " 5        nUR                  XAS S9  [        XBS9n[         R                  " XS5        [        XBSS/S9n[         R                  " XSSS/   5        S S S 5        g ! , (       d  f       g = f©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Ç   ]  so   € ð 
€BÜ	�ŠÔ	˜dØ
�‰�d°4ˆÑ8ä˜dÑ.ˆÜ
×Ò˜fÔ)ä˜d¸¸S°zÑBˆÜ
×Ò˜f¨#¨s¨¡nÔ5÷ 
×	Ö	úó   ˜AA8Á8
Bc                 ó  • U n[         R                  " 5        nUR                  XBS S9  [        XAS9n[         R                  " XS5        [        XASS/S9n[         R                  " XSSS/   5        S S S 5        g ! , (       d  f       g = frÂ   rÄ   rÅ   s         r)   Útest_cross_engine_fp_parÊ   k  sm   € à	€BÜ	�ŠÔ	˜dØ
�‰�d°4ˆÑ8ä˜dÑ.ˆÜ
×Ò˜fÔ)ä˜d¸¸S°zÑBˆÜ
×Ò˜f¨#¨s¨¡nÔ5÷ 
×	Ö	úrÈ   c                 ó&  • [         R                  " S/ SQ05      nSn[        R                  " 5        n[        R                  " [
        USSS9   UR                  X05        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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  sv   € ä	�Š�sšIÐ&Ó	'€Bð	1ð ô 
�ŠÔ	˜dÜ×'Ò'ÜØØ"Ø$)ó	
ð �M‰M˜$Ô'÷
÷ 
Ð	÷
õ 
ú÷ 
Õ	ús#   ²BÁA1Á BÁ1
A?	Á;BÂ
Bc                   ó    • \ rS rSrS rS rSrg)ÚBasei‰  c           	      óÔ   • [         R                  " 5        n[        R                  " X4S9   [	        XUS S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nrž   ©r€   )r‡   r’   r.   r    r   )Úselfr]   r*   ÚexcÚerr_msgr�   s         r)   Úcheck_error_on_writeÚBase.check_error_on_writeŠ  sC   € ä�_Š_Ô $Ü—’˜sÓ2Ü˜2 V¸Ò>÷ 3÷ Ðß2Õ2ú÷ Õús!   –A«A·AÁ
A	ÁAÁ
A'c           	      óØ   • [         R                  " 5        n[         R                  " U5         [        XUS S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NrÔ   )r‡   r’   Úexternal_error_raisedr   )rÕ   r]   r*   rÖ   r�   s        r)   Úcheck_external_error_on_writeÚ"Base.check_external_error_on_write�  sE   € ä�_Š_Ô $Ü×)Ò)¨#Õ.Ü˜2 V¸Ò>÷ /÷ Ðß.Õ.ú÷ Õús!   –A­A
¹AÁ

A	ÁAÁ
A)r0   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rØ   rÜ   Ú__static_attributes__r0   r+   r)   rÒ   rÒ   ‰  s   † ò?õ?r+   rÒ   c                   ób  • \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R.                  \R                  R0                  S 5       5       rSrg)Ú	TestBasici—  c                 óÒ   • [         R                  " / SQ5      SS[         R                  " S5      [        R                  " / SQ5      4 H  nSnU R                  X![        U5        M     g )Nr9   r:   r=   rP   z+to_parquet only supports IO with DataFrames)rC   ÚSeriesrz   rZ   r   rØ   r¡   )rÕ   r*   Úobjr¢   s       r)   Ú
test_errorÚTestBasic.test_error˜  sR   € ä�IŠI’iÓ ØØÜ�LŠL˜Ó$Ü�HŠH’YÓó
ˆCð @ˆCØ×%Ñ% c´:¸sÖCò
r+   c           	      ó–   • [         R                  " [        S5      [        [        SS5      5      S.5      nSS/Ul        [        X!5        g )NrH   r:   rI   ©rl   rq   r=   re   ©rC   rD   rX   rY   rB   r“   )rÕ   r*   r]   s      r)   Útest_columns_dtypesÚTestBasic.test_columns_dtypes£  s9   € Ü�\Š\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆð ˜U�^ˆŒ
Ü˜Õ$r+   r€   )NÚgzipÚsnappyÚbrotlic                 óP   • [         R                  " S/ SQ05      n[        X1SU0S9  g )Nr?   r9   r€   ©r�   ©rC   rD   r“   )rÕ   r*   r€   r]   s       r)   Útest_compressionÚTestBasic.test_compressionª  s$   € ä�\Š\˜3¢	Ð*Ó+ˆÜ˜°=À+Ð2NÓOr+   c           	      óÌ   • [         R                  " [        S5      [        [        SS5      5      S.5      n[         R                  " S[        S5      05      n[	        X!USS/0S9  g )NrH   r:   rI   rë   rl   rB   ©rŒ   rŽ   ©rC   rD   rX   rY   r“   )rÕ   r*   r]   rŒ   s       r)   Útest_read_columnsÚTestBasic.test_read_columns¯  sQ   € ä�\Š\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆä—<’< ¬4°«;Ð 7Ó8ˆÜØ ¸	ÀHÀ:Ð7Nó	
r+   c           
      óÎ   • [         R                  " [        [        S5      5      [        S5      S.5      n[         R                  " SSS/05      n[	        UUUUSS/0S	/S/S
.SS9  g )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_filtersÚTestBasic.test_read_filters¸  sm   € Ü�\Š\äœE !›H“~Ü˜V›ñó
ˆô —<’< ¨¨A¨ Ó0ˆÜØØØØØ*¨V¨HÐ5Ø%8Ð$9ÀuÀgÑNØó	
r+   c                 óž  • US:g  n[         R                  " S/ SQ05      n[        X15        / SQ[         R                  " SSS9[	        S5      / S	Q/nU HR  nXSl        [        U[         R                  5      (       a   UR
                  R                  S 5      Ul        [        X1US
9  MT     / SQUl        SUR
                  l	        [        X15        g )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_indexÚTestBasic.test_write_indexË  s«   € Ø Ñ-ˆä�\Š\˜3¢	Ð*Ó+ˆÜ˜Ô$ò Ü�MŠM˜*¨aÑ0Ü�‹KÚð	
ˆó ˆEØŒHÜ˜%¤×!1Ñ!1×2Ñ2ØŸ8™8×.Ñ.¨tÓ4�”Ü˜R°[ÔAñ	 ò ˆŒØˆ�‰ŒÜ˜Õ$r+   c                 ó    • Un[         R                  " S/ SQ05      n[         R                  R                  / SQ5      nXCl        [        X25        g )Nr?   r9   ©)rS   r:   )rS   r;   )rT   r:   )rC   rD   Ú
MultiIndexÚfrom_tuplesr  r“   )rÕ   r1   r*   r]   r  s        r)   Útest_write_multiindexÚTestBasic.test_write_multiindexã  s<   € àˆä�\Š\˜3¢	Ð*Ó+ˆÜ—‘×)Ñ)Ò*HÓIˆØŒÜ˜Õ$r+   c           	      ó¨  • Un[         R                  " SSSS9n[         R                  " [        R                  R                  S5      R                  S[        U5      -  S45      [        S5      S9n[         R                  R                  S	S
/U/SS/S9nUR                  S S9nXV4 H(  nXtl        [        XB5        [        XBSSS/0USS/   S9  M*     g )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_columnsÚ&TestBasic.test_multiindex_with_columnsì  sÔ   € ØˆÜ—’˜m¨]ÀÑFˆÜ�\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°a¼#¸e»*±nÀaÐ5HÓIÜ˜“Kñ
ˆô —‘×+Ñ+Ø˜Ð! 5Ð)°'¸6Ð1Bð ,ð 
ˆð —‘ 4�Ð(ˆØÓ%ˆEØŒHä˜RÔ(ÜØ¨°S¸#°JÐ(?È"ÈcÐSVÈZÉ.ôò	 &r+   c                 óž  • [         R                  " / SQ/ SQS.5      nS SS.nUR                  SS9n[        X!X4S9  [         R                  " / SQ/ SQS./ S	QS
9n[        X!X4S9  / SQ/ SQ/n[         R                  " [	        [        S5      5      [        S5       Vs/ s H  of* PM     snS.US
9nUR                  SS9n[        X!X4S9  g s  snf )Nr9   )ÚqÚrÚs)rS   rT   F)r€   r  T)Údrop©r�   rŒ   )ÚzyxÚwvuÚtsr©r  ©re   re   rf   rf   r=   r=   Úquxr2  ©ÚoneÚtwor4  r5  r4  r5  r4  r5  é   )r4  r5  )rC   rD   Úreset_indexr“   rX   rY   )rÕ   r*   r]   r�   rŒ   ÚarraysÚis          r)   Útest_write_ignoring_indexÚ#TestBasic.test_write_ignoring_indexÿ  sË   € ô �\Š\¢	²Ñ@ÓAˆà'+°eÑ<ˆð —>‘> t�>Ð,ˆä˜°,ÒRô �\Š\Ú¢/Ñ2Ò:Oñ
ˆô 	˜°,ÒRò EÚDð
ˆô �\Š\Üœ˜q›“N¼¸a¼Ó+Aº°1«B¹Ñ+AÑBÈ&ñ
ˆð —>‘> t�>Ð,ˆÜ˜°,ÓRùò	 ,Bs   ÂC

c                 ó(  • [         R                  R                  / SQ5      n[         R                  " [        R
                  R                  S5      R                  S5      US9nUS:X  a  U R                  X1[        S5        g US:X  a  [        X15        g g )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_multiindexÚ&TestBasic.test_write_column_multiindex  s{   € ä—]‘]×.Ñ.Ò/MÓNˆ
Ü�\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àjñ
ˆð �]Ó"Ø×%Ñ%ØœIÐ'Eõð �yÓ Ü˜RÕ(ð !r+   c                 ó  • / SQ/ SQ/n[         R                  " [        R                  R	                  S5      R                  S5      US9nSS/UR                  l        US:X  a  U R                  X1[        S	5        g US
:X  a  [        X15        g g )Nr1  )r:   r;   r:   r;   r:   r;   r:   r;   r;   ©r6  r6  rA   r  r  r   zColumn namer    )rC   rD   rZ   r  r  r  rB   rš   rØ   r¡   r“   ©rÕ   r*   r8  r]   s       r)   Ú&test_write_column_multiindex_nonstringÚ0TestBasic.test_write_column_multiindex_nonstring-  sƒ   € ò
 EÚ$ð
ˆô �\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfñ
ˆð % hÐ/ˆ�
‰
ÔØ�]Ó"Ø×%Ñ% b´*¸mÕLØ�yÓ Ü˜RÕ(ð !r+   c                 óÖ   • Un/ SQ/ SQ/n[         R                  " [        R                  R	                  S5      R                  S5      US9nSS/UR                  l        [        XB5        g )Nr1  r3  r;   rC  rA   Ú	ColLevel1Ú	ColLevel2)	rC   rD   rZ   r  r  r  rB   rš   r“   ©rÕ   r1   r*   r8  r]   s        r)   Ú#test_write_column_multiindex_stringÚ-TestBasic.test_write_column_multiindex_string>  sc   € ð ˆò EÚDð
ˆô �\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfñ
ˆð (¨Ð5ˆ�
‰
Ôä˜Õ$r+   c                 óÊ   • Un/ SQn[         R                  " [        R                  R	                  S5      R                  S5      US9nSUR                  l        [        XB5        g )N)re   rf   r=   r2  r;   ©r6  rI   rA   Ú	StringCol)	rC   rD   rZ   r  r  r  rB   r	  r“   rJ  s        r)   Útest_write_column_index_stringÚ(TestBasic.test_write_column_index_stringO  sR   € ð ˆò .ˆÜ�\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfñ
ˆð &ˆ�
‰
Œä˜Õ$r+   c                 ó  • / SQn[         R                  " [        R                  R	                  S5      R                  S5      US9nSUR                  l        US:X  a  U R                  X1[        S5        g [        X15        g )N©r:   r;   r<   rI   r;   rN  rA   ÚNonStringColr   r=  )rC   rD   rZ   r  r  r  rB   r	  rØ   r>  r“   rD  s       r)   Ú!test_write_column_index_nonstringÚ+TestBasic.test_write_column_index_nonstring]  sk   € ò ˆÜ�\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°VÓ<Àfñ
ˆð )ˆ�
‰
ŒØ�]Ó"Ø×%Ñ%ØœIÐ'Eõô ˜RÕ(r+   c                 óè  • [         R                  " S5      nUS:X  a.  [         R                  R                  SS9nUR	                  U5        [
        R                  " [
        R                  " / SQS5      [
        R                  " / SQS5      [
        R                  " / SQ5      [
        R                  " / S	Q5      [
        R                  " / S
QS5      [
        R                  " / SQS5      [
        R                  " / SQS5      S.5      n[        R                  " 5        nUR                  XV5        [        XaS9n[        XaSS9nS S S 5        WS   R                  [        R                  " S5      :X  d   e[        R                  " [        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / S	QSS9[        R                  " / S
QSS9[        R                  " / SQSS9[        R                  " / SQSS9S.5      n	US:X  a   WR!                  SSS9nU	R!                  SSS9n	[        R"                  " WU	5        g ! , (       d  f       GN'= f)Nzpyarrow.parquetr   z.Fastparquet nullable dtype support is disabledr   ©r:   r;   r<   NÚint64Úuint8)rS   rT   r`   N)TFTNrS  )ç      ð?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   rh  r�   Úresult1Úresult2rŒ   s
             r)   Útest_dtype_backendÚTestBasic.test_dtype_backendm  sÙ  € Ü× Ò Ð!2Ó3ˆà�]Ó"ô —;‘;×$Ñ$ØGð %ð ˆDð ×Ñ Ô%ä—’ä—]’]¢?°GÓ<Ü—]’]¢?°GÓ<Ü—]’]Ò#8Ó9Ü—]’]Ò#<Ó=ä—]’]¢<°Ó9ä—]’]Ò#8¸)ÓDÜ—]’]Ò#8¸)ÓDñ
ó
ˆô �_Š_Ô $à�N‰N˜5Ô'Ü" 4Ñ7ˆGÜ" 4ÐFVÑWˆG÷	 ð �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÷/ Öús   Ä%I"É"
I1rN   )	ra  rb  rc  Úobjectzdatetime64[ns, UTC]rs   z	period[D]re  rl   c                 óÚ   • [         R                  " S[         R                  " / US905      nS nUS:X  a+  [         R                  " S[         R                  " / SS905      n[        X1SS0US9  g )NÚvaluerM   rs   re  r`  r^  r  )rC   rD   r   r“   )rÕ   r1   rN   r]   rŒ   s        r)   Útest_read_empty_arrayÚTestBasic.test_read_empty_arrayž  sp   € ô  �\Š\àœŸš "¨EÑ2ðó
ˆð ˆØ�GÓÜ—|’|àœRŸXšX b°	Ñ:ðóˆHô
 	Ø Ð2BÐ CÈhó	
r+   c                 ó&  • US:w  a  [         R                  " U5        [        U" SSSS5      SS9 nUR                  UR	                  5       S9  [        UR                  US	9nS S S 5        [        R                  " WU5        g ! , (       d  f       N&= f)
Nr¯   ÚioÚdataÚparquetzsimple.parquetÚrb)Úmode)ÚcontentrÃ   )	r.   rg  ÚopenÚserve_contentÚreadr   Úurlr‡   rˆ   )rÕ   Ú
httpserverÚdatapathrF   r*   rW   r]   s          r)   Útest_parquet_read_from_urlÚ$TestBasic.test_parquet_read_from_url¿  s|   € ð �VÓÜ×Ò Ô'Ü‘(˜4 ¨Ð4DÓEÈDÒQÐUVØ×$Ñ$¨Q¯V©V«XÐ$Ñ6Ü˜jŸn™n°VÑ<ˆB÷ Rô 	×Ò˜b )Õ,÷ RÕQús   °2BÂ
Br0   N)rÞ   rß   rà   rá   rè   rí   r.   r5   Úparametrizerõ   rú   r  r  r  r%  r:  r@  rE  rK  rP  rU  rm  rr  ÚnetworkÚ
single_cpur�  râ   r0   r+   r)   rä   rä   —  sÐ   † ò	Dò%ð ‡[�[×Ñ˜]Ò,NÓOñPó PðPò
ò
ò&%ò0%òò&Sò@)ò)ò"%ò"%ò)ò /1ðb ‡[�[×ÑØò
	
óñ
óð
ð& ‡[�[×ÑØ‡[�[×Ññ-ó ó ó-r+   rä   c                   ó  • \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  \" 5       S	S
9\R                  R                  \(       + SS
9\R                  R#                  S\\R(                  /5      S 5       5       5       rS r\R                  R.                  S 5       r\R                  R.                  S 5       r\R                  R.                  \R                  R#                  SS// /5      S 5       5       rS rS rS rS r\R                  R#                  S\S /SS/S9S 5       rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*\R                  R#                  S(S)S*/\RV                  " S+S,/\R                  R                  \,\-S-S.9S/9\.R\                  " S0S*S*S)S)5      \.R\                  " S0S*S*S*S*5      //5      S1 5       r/S2 r0S3 r1S4 r2\R                  R                  \3S5S
9S6 5       r4S7 r5S8r6g9):ÚTestParquetPyArrowiÊ  c                 ó‚   • Un[         R                  " SSSS9nUR                  S 5      nXCS'   / SQUS'   [        X15        g )NrP   r<   úEurope/Brussels©rR   ÚtzÚdatetime_tz©TNTÚbool_with_none)rC   r\   r  r“   )rÕ   r1   r|   r]   Údtis        r)   Ú
test_basicÚTestParquetPyArrow.test_basicË  sE   € Øˆô �mŠm˜J°Ð6GÑHˆØ�n‰n˜TÓ"ˆØˆ=ÑÚ1ˆÐÑä˜Õ r+   c                 ód   • Un[         R                  " SSSS9US'   [        UUUSS/   SSS/0S	9  g )
NrP   r<   r‰  rŠ  rŒ  rl   rq   rB   rø   )rC   r\   r“   )rÕ   r1   r|   r]   s       r)   Útest_basic_subset_columnsÚ,TestParquetPyArrow.test_basic_subset_columnsÖ  sI   € ð ˆäŸMšM¨*¸aÐDUÑVˆˆ=ÑäØØØ˜ 5Ð)Ñ*Ø" X¨uÐ$5Ð6ó		
r+   c                 óæ   • UR                  US9n[        U[        5      (       d   e[        U5      n[	        U5      nUR                  5       nS UR                  S'   [        R                  " XV5        g )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_providedÚ=TestParquetPyArrow.test_to_bytes_without_path_or_buf_providedä  sd   € à×&Ñ&¨bÐ&Ð1ˆ	Ü˜)¤U×+Ñ+Ð+Ð+ä˜YÓ'ˆ
Ü˜:Ó&ˆà—<‘<“>ˆØ-1ˆ�‰Ð)Ñ*Ü
×Ò˜cÕ,r+   c                 óÒ   • [         R                  " [        R                  " S5      R	                  SS5      [        S5      S9R                  5       nU R                  X![        S5        g )Né   rI   r<   ÚaaarA   zDuplicate column names found©	rC   rD   rZ   r[   ÚreshaperX   r!  rØ   r¡   ©rÕ   r1   r]   s      r)   Útest_duplicate_columnsÚ)TestParquetPyArrow.test_duplicate_columnsð  sG   € ä�\Š\œ"Ÿ)š) B›-×/Ñ/°°1Ó5¼tÀE»{ÑK×PÑPÓRˆØ×!Ñ! "¬*Ð6TÕUr+   c                 óp   • [         R                  " S[         R                  " SSS905      n[        X!5        g )NrS   ú1 dayr<   rQ   )rC   rD   Útimedelta_ranger“   r   s      r)   Útest_timedeltaÚ!TestParquetPyArrow.test_timedeltaõ  s*   € Ü�\Š\˜3¤× 2Ò 2°7ÀAÑ FÐGÓHˆÜ˜Õ r+   c                 óx   • [         R                  " S/ SQ05      nU R                  X![        R                  5        g )NrS   ©rS   r:   ri   )rC   rD   rÜ   r    ÚArrowExceptionr   s      r)   Útest_unsupportedÚ#TestParquetPyArrow.test_unsupportedù  s-   € ä�\Š\˜3¢Ð.Ó/ˆð 	×*Ñ*¨2´7×3IÑ3IÕJr+   c                 óæ   • [         R                  " SS[         R                  S9n[        R                  " US/S9n[
        (       a!  U R                  X1[        R                  5        g [        X15        g )Nr;   é
   rM   Úfp16©rv  rB   )
rZ   r[   Úfloat16rC   rD   r   rÜ   r    rª  r“   )rÕ   r1   rv  r]   s       r)   Útest_unsupported_float16Ú+TestParquetPyArrow.test_unsupported_float16   sP   € ô �yŠy˜˜B¤b§j¡jÑ1ˆÜ�\Š\˜t¨f¨XÑ6ˆßÒØ×.Ñ.¨r´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                 óÎ  • [         R                  " SS[         R                  S9n[        R                  " US/S9n[
        R                  " 5        nU" U5      n[
        R                  " [        R                  5         UR                  XaS9  S S S 5        [        R                  R                  U5      (       a   e S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)Nr;   r®  rM   r¯  r°  )r�   r*   )rZ   r[   r±  rC   rD   r‡   r’   rÛ   r    rª  r   Úosr�   Úisfile)rÕ   r1   r´  rv  r]   Úpath_strr�   s          r)   Ú test_unsupported_float16_cleanupÚ3TestParquetPyArrow.test_unsupported_float16_cleanup
  sž   € ô �yŠy˜˜B¤b§j¡jÑ1ˆÜ�\Š\˜t¨f¨XÑ6ˆä�_Š_Ô (Ù˜XÓ&ˆDÜ×)Ò)¬'×*@Ñ*@ÕAØ—‘ 4�Ñ3÷ Bä—w‘w—~‘~ d×+Ñ+Ð+Ð+Ð+÷	 ÐçAÕAú÷ Õús$   Á-CÁ=CÂ.CÃ
C	ÃCÃ
C$c           
      ó  • [         R                  " [         R                  " [        S5      5      [         R                  " / SQ[         R                  " / SQ5      S9[         R                  " / SQ/ SQSS9S	.5      n[        X!5        g )
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_categoricalÚ#TestParquetPyArrow.test_categorical   sd   € ä�\Š\ä—^’^¤D¨£NÓ3ä—^’^Ú=Ü×-Ò-Ò.CÓDñô
 —^’^Ú2Ú.Ø ññó
ˆô" 	˜Õ r+   c                 ó�   • [         R                  " S5      nUR                  " S0 UD6nSU0n[        UUUR                   S3UUS9  g )NÚs3fsÚ
filesystemú/pyarrow.parquet©r�   rŽ   r�   r0   )r.   rg  ÚS3FileSystemr“   r	  )rÕ   rF   Ús3_public_bucketr1   Ús3sorÅ  Ús3Úkws           r)   Útest_s3_roundtrip_explicit_fsÚ0TestParquetPyArrow.test_s3_roundtrip_explicit_fs5  sU   € ä×"Ò" 6Ó*ˆØ×ÒÑ& Ñ&ˆØ˜BÐˆÜØØØ$×)Ñ)Ð*Ð*:Ð;ØØó	
r+   c                 óB   • SU0n[        UUSUR                   S3UUS9  g )NÚstorage_optionsús3://rÇ  rÈ  ©r“   r	  )rÕ   rF   rÊ  r1   rË  s        r)   Útest_s3_roundtripÚ$TestParquetPyArrow.test_s3_roundtripB  s7   € ð " 4Ð(ˆÜØØØÐ)×.Ñ.Ð/Ð/?Ð@ØØó	
r+   Úpartition_colr?   c                 ó:  • [         R                  " S5        UR                  5       nU(       aJ  UR                  [        R                  U[        R                  5      5      nSnXd   R                  U5      Xd'   [        UUUSUR                   S3SU0US US.SSS	9  g )
NrÅ  ÚcategoryrÒ  z/parquet_dirrÑ  )rÿ   r€   rÑ  Tr:   )rŒ   r�   rŽ   r�   r„   r‰   )
r.   rg  r!  ry   ÚdictÚfromkeysrZ   Úint32r“   r	  )rÕ   rF   rÊ  r1   rÖ  rË  Úexpected_dfÚpartition_col_types           r)   Útest_s3_roundtrip_for_dirÚ,TestParquetPyArrow.test_s3_roundtrip_for_dirN  s¦   € ô 	×Ò˜FÔ#à—n‘nÓ&ˆö Ø%×,Ñ,¬T¯]©]¸=Ì"Ï(É(Ó-SÓTˆKØ!+Ðà)4Ñ)C×)JÑ)JØ"ó*ˆKÑ&ô 	ØØØ ØÐ)×.Ñ.Ð/¨|Ð<Ø*¨DÐ1à"/Ø#Ø#'ñð
 Øó	
r+   c                 ó  • [         R                  " S5        [        5       nUR                  U5        [	        U5      nU(       a+  [
        (       d   UR                  R                  S5      Ul        [        R                  " X5        g )Nr    r¥   )
r.   rg  r   r   r   r   rB   ry   r‡   rˆ   )rÕ   rF   r¨   ÚbufferÚdf_from_bufs        r)   Útest_read_file_like_obj_supportÚ2TestParquetPyArrow.test_read_file_like_obj_supportu  s_   € Ü×Ò˜IÔ&Ü“ˆØ×Ñ˜VÔ$Ü" 6Ó*ˆÞ×&:Ò&:Ø )× 1Ñ 1× 8Ñ 8¸Ó ?ˆIÔÜ
×Ò˜iÕ5r+   c                 ó|  • [         R                  " S5        UR                  SS5        UR                  SS5        [         R                  " [        SS9   [        S5        S S S 5        [         R                  " [        SS9   UR                  S5        S S S 5        g ! , (       d  f       NB= f! , (       d  f       g = f)Nr    ÚHOMEÚTestingUserÚUSERPROFILEz.*TestingUser.*rž   z~/file.parquet)r.   rg  Úsetenvr    ÚOSErrorr   r   )rÕ   rF   Úmonkeypatchs      r)   Útest_expand_userÚ#TestParquetPyArrow.test_expand_user~  sƒ   € Ü×Ò˜IÔ&Ø×Ñ˜6 =Ô1Ø×Ñ˜=¨-Ô8Ü�]Š]œ7Ð*<Ó=ÜÐ)Ô*÷ >ä�]Š]œ7Ð*<Ó=Ø× Ñ Ð!1Ô2÷ >Ð=÷ >Õ=úç=Õ=ús   ÁBÂB-Â
B*Â-
B;c                 ó�   • SS/nUnUR                  XS S9  [        X5        [        U5      R                  UR                  :X  d   eg )Nru   rq   ©rÿ   r€   ©r   rœ   r   Úshape)rÕ   r  r1   r|   rÿ   r]   s         r)   Útest_partition_cols_supportedÚ0TestParquetPyArrow.test_partition_cols_supported‡  sE   € à  %˜ˆØˆØ
�‰�hÈ4ˆÑPÜ˜hÔ7Ü˜HÓ%×+Ñ+¨r¯x©xÓ7Ð7Ñ7r+   c                 ó’   • SnU/nUnUR                  XS S9  [        X5        [        U5      R                  UR                  :X  d   eg )Nru   rï  rð  )rÕ   r  r1   r|   rÿ   Úpartition_cols_listr]   s          r)   Útest_partition_cols_stringÚ-TestParquetPyArrow.test_partition_cols_string�  sJ   € àˆØ-Ð.ÐØˆØ
�‰�hÈ4ˆÑPÜ˜hÔ<Ü˜HÓ%×+Ñ+¨r¯x©xÓ7Ð7Ñ7r+   c                 ó   • U $ r$   r0   )Úxs    r)   Ú<lambda>ÚTestParquetPyArrow.<lambda>™  s   € ¡Qr+   rl   zpathlib.Path)Úidsc                 óŠ   • SnU/nUnU" U5      nUR                  X†S9  [        U5      R                  UR                  :X  d   eg )Nr@   )rÿ   )r   r   rñ  )	rÕ   r  r1   rF   r´  rÿ   rõ  r]   r�   s	            r)   Útest_partition_cols_pathlibÚ.TestParquetPyArrow.test_partition_cols_pathlib˜  sL   € ð ˆØ-Ð.ÐØˆá˜Ó"ˆØ
�‰�dˆÑ?Ü˜DÓ!×'Ñ'¨2¯8©8Ó3Ð3Ñ3r+   c                 óD   • [         R                  " / / S9n[        X!5        g )N)r  rB   rô   r   s      r)   Útest_empty_dataframeÚ'TestParquetPyArrow.test_empty_dataframe¦  s   € ä�\Š\ ¨BÑ/ˆÜ˜Õ r+   c                 óæ   • SS K n[        R                  " SSS/05      nUR                  " UR                  " SUR
                  " 5       S9/5      nUR                  [        5      n[        X1SU0US9  g )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_schemaÚ)TestParquetPyArrow.test_write_with_schema«  s[   € Ûä�\Š\˜3  A ˜-Ó(ˆØ—’ §¢¨s¸¿º»Ñ!IÐ JÓKˆØ—‘œ4“ˆÜ˜¨x¸Ð.@È6ÓRr+   c           	      óÄ  • [         R                  " S5        [        R                  " [        R                  " / SQSS9[        R                  " / SQSS9[        R                  " / SQSS9S.5      nU(       a'  [
        (       a  [        X1UR                  S	S
05      S9  O[        X15        [        R                  " S[        R                  " / SQSS905      n[        X15        g )Nr    r9   ra  rM   ÚUInt32ra   rl   r¿  r`   r¥   ©rŒ   rS   rX  )r.   rg  rC   rD   ræ   r   r“   ry   )rÕ   r1   r¨   r]   s       r)   Ú test_additional_extension_arraysÚ3TestParquetPyArrow.test_additional_extension_arrays³  s    € ô 	×Ò˜IÔ&Ü�\Š\ä—Y’Yšy°Ñ8Ü—Y’Yšy°Ñ9Ü—Y’YÒ/°xÑ@ñó
ˆö ×"6Ò"6Ü˜R¨b¯i©i¸¸e¸Ó.EÓFä˜RÔ$ä�\Š\˜3¤§	¢	ª/ÀÑ IÐJÓKˆÜ˜Õ r+   c                 óÞ  • [         R                  " S5        [        R                  " S[        R                  " / SQSS905      n[        R
                  " SU5         U(       aS  [        (       a  UR                  S5      nOUR                  SU S	35      nUR                  R                  S5      Ul        OUR                  SU S	35      n[        XAUS
9  S S S 5        g ! , (       d  f       g = f)Nr    rS   ra   ústring[pyarrow]rM   Ústring_storager¥   zstring[Ú]r  )
r.   rg  rC   rD   ræ   r§   r   ry   rB   r“   )rÕ   r1   r  r¨   r]   rŒ   s         r)   Ú test_pyarrow_backed_string_arrayÚ3TestParquetPyArrow.test_pyarrow_backed_string_arrayÆ  s¸   € ä×Ò˜IÔ&Ü�\Š\˜3¤§	¢	Ò*:ÐBSÑ TÐUÓVˆÜ×ÒÐ/°Õ@Þ!ß'Ò'Ø!Ÿy™y¨Ó/‘Hà!Ÿy™y¨7°>Ð2BÀ!Ð)DÓE�HØ#+×#3Ñ#3×#:Ñ#:¸5Ó#A�Õ àŸ9™9 w¨~Ð.>¸aÐ%@ÓA�Ü˜R¨hÒ7÷ A×@Ö@ús   ÁA:CÃ
C,c                 óB  • [         R                  " S5        [        R                  " [        R                  R                  / SQ5      [        R                  " SSSS9[        R                  R                  [        R                  " SSSS95      S.5      n[        X!5        g )	Nr    ))r   r:   )r:   r;   )r<   rI   z
2012-01-01r<   ÚD)rR   r  rI   )r`   rU   rV   )
r.   rg  rC   rD   ÚIntervalIndexr  Úperiod_rangeÚfrom_breaksr\   r“   r   s      r)   Útest_additional_extension_typesÚ2TestParquetPyArrow.test_additional_extension_typesÕ  sx   € ô 	×Ò˜IÔ&Ü�\Š\ä×%Ñ%×1Ñ1Ò2JÓKÜ—_’_ \¸1À3ÑGä×%Ñ%×1Ñ1Ü—M’M ,¸ÀÑDóñ	ó	
ˆô 	˜Õ r+   c           	      óx   • Sn[         R                  " S[         R                  " SSSS905      n[        X1SU0S9  g )	Nz2.6rS   z
2017-01-01Ú1nsr®  ©r  rR   Úversionró   )rC   rD   r\   r“   )rÕ   r1   Úverr]   s       r)   Útest_timestamp_nanosecondsÚ-TestParquetPyArrow.test_timestamp_nanosecondså  s9   € ð ˆÜ�\Š\˜3¤§¢¨lÀÐPRÑ SÐTÓUˆÜ˜¨y¸#Ð.>Ó?r+   c                 ól  • [         R                  " SS5        SU/-  n[        R                  " USU0S9nUS S  n[        (       a   UR
                  R                  S5      Ul        UR                  [        R                  R                  :w  a�   SS KnUR
                  R                  R                  U5      nUR                  UR                  5       S-  5      nUR
                  R!                  U5      Ul        US   R"                  R!                  U5      US'   ['        XAS	US
9  g ! [$         a     Nf = f)Nr    ú11.0.0é   Úindex_as_col©r  rv  Únsr   é<   F)r…   rŒ   )r.   rg  rC   rD   r	   r  Úas_unitÚtzinforv   ÚtimezoneÚutcÚpytzr‹  Ú	utcoffsetÚFixedOffsetÚtotal_secondsÚ
tz_convertÚdtr¹   r“   )	rÕ   r1   r~   Úidxr]   rŒ   r.  Úoffsetr‹  s	            r)   Útest_timezone_aware_indexÚ,TestParquetPyArrow.test_timezone_aware_indexí  s  € Ü×Ò˜I xÔ0àÐ+Ð,Ñ,ˆÜ�\Š\ ¨>¸3Ð*?Ñ@ˆð ‘a�5ˆßÒØ%Ÿ^™^×3Ñ3°DÓ9ˆHŒNØ#×*Ñ*¬h×.?Ñ.?×.CÑ.CÓCðVÛð Ÿ™Ÿ™×.Ñ.Ð/GÓH�Ø×%Ñ% f×&:Ñ&:Ó&<¸rÑ&AÓB�Ø!)§¡×!:Ñ!:¸2Ó!>�”Ø+3°NÑ+C×+FÑ+F×+QÑ+QÐRTÓ+U�˜Ñ(Ü˜¨U¸XÓFøô ó Ùðús   ÂD& Ä&
D3Ä2D3c                 ó8  • [         R                  " S5        [        R                  " S[	        [        S5      5      05      n[        R                  " 5        nUR                  X1S9  [        X1S/S9nS S S 5        [        W5      S:X  d   eg ! , (       d  f       N = f)Nr    rS   r<   rÃ   ©rS   r   r   ©r  r:   )r.   rg  rC   rD   rX   rY   r‡   r’   r   r   r  )rÕ   r1   r]   r�   rÆ   s        r)   Útest_filter_row_groupsÚ)TestParquetPyArrow.test_filter_row_groups  sv   € ä×Ò˜IÔ&Ü�\Š\˜3¤¤U¨1£X£Ð/Ó0ˆÜ�_Š_Ô $Ø�M‰M˜$ˆMÑ*Ü! $°^Ð4DÑEˆF÷ ô �6‹{˜aÓÐÑ÷ Õús   ÁBÂ
Bc                 ó(  • [         R                  " [        R                  R	                  S5      R                  S5      / SQS9n[        R                  " 5        nUR                  XAS9  [        XA5      nS S S 5        U(       a@  [        WR                  [         R                  R                  R                  5      (       d   eg [        WR                  [         R                  R                  R                  5      (       d   eg ! , (       d  f       N•= f)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_managerÚ,TestParquetPyArrow.test_read_parquet_manager  s¶   € ä�\Š\Ü�I‰I×!Ñ! !Ó$×4Ñ4°WÓ=Âñ
ˆô �_Š_Ô $Ø�M‰M˜$ˆMÑ*Ü! $Ó+ˆF÷ ö Ü˜fŸk™k¬2¯7©7×+<Ñ+<×+IÑ+I×JÑJÐJÑJä˜fŸk™k¬2¯7©7×+<Ñ+<×+IÑ+I×JÑJÐJÑJ÷ Õús   ÁDÄ
Dc           	      óæ  • SS K nUn[        R                  " SSSS9nUR                  S 5      nXTS'   / SQUS'   UR                  R                  U5      nUR                  [        R                  S	9n[        (       ah  US
   R                  S5      US
'   US   R                  S5      US'   US   R                  [        R                  " UR                  " SSS95      5      US'   [        UUSS0US9  g )Nr   rP   r<   r‰  rŠ  rŒ  r�  rŽ  )Útypes_mapperrv   ztimestamp[us][pyarrow]rw   Úus)Úunitr‹  r`  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_configÚ9TestParquetPyArrow.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                 ó*  • [         R                  " SSS/0[         R                  " SS/SS9SS	9nUR                  5       nS
S Kn[        UR                  5      [        S5      :”  a   UR                  R                  S5      Ul        [        UUSS0US9  g )NrS   r:   r;   r<   rI   Útest©r	  zint64[pyarrow])r  rN   r   r$  r`  r    rK  )
rC   rD   rE   r!  r    r   r¸   r  ry   r“   )rÕ   r1   r]   rŒ   r    s        r)   Ú,test_read_dtype_backend_pyarrow_config_indexÚ?TestParquetPyArrow.test_read_dtype_backend_pyarrow_config_indexC  s‡   € Ü�\Š\Ø�1�a�&ˆM¤§¢¨1¨a¨&°vÑ!>ÐFVñ
ˆð —7‘7“9ˆÛä�7×&Ñ&Ó'¬'°(Ó*;Ó;Ø%Ÿ^™^×2Ñ2Ð3CÓDˆHŒNÜØØØ(¨)Ð4Øó		
r+   rB   r   r:   rb   rc   z*https://github.com/apache/arrow/pull/44171)r    r   r   éÛ  c           	      ó�   • [         R                  " [        S5      [        [        SS5      5      S.5      nX#l        [        X15        g )NrH   r:   rI   rë   rì   )rÕ   r1   rB   r]   s       r)   Útest_columns_dtypes_not_invalidÚ2TestParquetPyArrow.test_columns_dtypes_not_invalidS  s3   € ô& �\Š\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆàŒ
Ü˜Õ r+   c                 ól   • [         R                  " [         R                  " / SQSS9S9n[        X!5        g )Nr¿  úcustom namerV  r0  ©rC   rD   rE   r“   r   s      r)   Útest_empty_columnsÚ%TestParquetPyArrow.test_empty_columnsk  s#   € ä�\Š\¤§¢ª¸}Ñ MÑNˆÜ˜Õ r+   c                 ó¶   • US-  n[         R                  " SS/0S9nSS0Ul        UR                  X2S9  [	        X2S9nUR                  UR                  :X  d   eg )Nztest_df_metadata.pr:   ©rv  Útest_attributerÃ   )rC   rD   Úattrsr   r   )rÕ   r  r1   r�   r]   Únew_dfs         r)   Útest_df_attrs_persistenceÚ,TestParquetPyArrow.test_df_attrs_persistencep  s[   € ØÐ.Ñ.ˆÜ�\Š\  A 3˜xÑ(ˆØ$ aÐ(ˆŒØ
�‰�dˆÑ&Ü˜dÑ.ˆØ�|‰|˜rŸx™xÓ'Ð'Ñ'r+   c           
      ó   • US-  n[         R                  " SSS/0SS/S9nUR                  XBS9  [         R                  " SS	5         [	        XBS9nS S S 5        [         R
                  " [        R                  S
9n[         R                  " SSS/0U[         R                  " SS/US9[         R                  " S/[        (       a  U(       d  [        OUS9S9n[        R                  " WU5        g ! , (       d  f       N¤= f)Nztest_string_inference.prS   rù  ÚyrT   )rv  r  rÃ   úfuture.infer_stringT©Úna_valuerM   )rv  rN   r  rB   )rC   rD   r   r§   r   ÚStringDtyperZ   rx   rE   r   ro  r‡   rˆ   )	rÕ   r  r1   r¨   r�   r]   rÆ   rN   rŒ   s	            r)   Útest_string_inferenceÚ(TestParquetPyArrow.test_string_inferencex  sÖ   € àÐ3Ñ3ˆÜ�\Š\  c¨3 ZÐ0¸¸c¸
ÑCˆØ
�‰�dˆÑ&Ü×ÒÐ4°dÕ;Ü! $Ñ2ˆF÷ <ä—’¬¯©Ñ/ˆÜ—<’<Ø˜˜S�zÐ"ØÜ—(’(˜C ˜:¨UÑ3Ü—H’HØ�ç'Ò'Ö0Bõ àñ	ñ	

ˆô 	×Ò˜f hÕ/÷ <Õ;ús   Á
C/Ã/
C=znot supported before 11.0c           	      ó„  • SS K nUS-  n[        R                  " S[        S5      /0SS9nUR	                  X2R                  SUR                  S5      4/5      S9  [        U5      n[        (       a  [        R                  " SS	/0S
S9nO![        R                  " S[        S5      /0SS9n[        R                  " XV5        g )Nr   z	decimal.prS   z123.00r  rM   r%  )r™   Ú123zstring[python]ro  )r    rC   rD   r   r   r™   Ú
decimal128r   r   r‡   rˆ   )rÕ   r  r1   r�   r]   rÆ   rŒ   s          r)   Útest_roundtrip_decimalÚ)TestParquetPyArrow.test_roundtrip_decimal�  s©   € ó 	à˜+Ñ%ˆÜ�\Š\˜3¤¨Ó!2Ð 3Ð4Ð<MÑNˆØ
�‰�d§9¡9¨s°B·M±MÀ!Ó4DÐ.EÐ-FÓ#GˆÑHÜ˜dÓ#ˆßÒÜ—|’| S¨5¨' NÐ:JÑK‰Hä—|’| S¬7°8Ó+<Ð*=Ð$>ÀhÑOˆHÜ
×Ò˜fÕ/r+   c                 ó,  • SS K nSS KJn  US-  nUR                  SUR	                  / SQUR                  5       5      05      nUR                  XT5        [        R                  " SS5         [        U5      nS S S 5        [        R                  " S/ SQ0[        R                  " [        R                  S9[        R                  " S/[        R                  " [        R                  S9S9S	9n[        R                   " WU5        g ! , (       d  f       N”= f)
Nr   zlarge_string.prS   )NrT   r`   rk  Trl  rM   )rv  rN   rB   )r    Úpyarrow.parquetrw  rh  r   Úlarge_stringri  rC   r§   r   rD   rn  rZ   rx   rE   r‡   rˆ   )rÕ   r  r1   rj  r�   rh  rÆ   rŒ   s           r)   Ú#test_infer_string_large_string_typeÚ6TestParquetPyArrow.test_infer_string_large_string_typeœ  sÄ   € ãÝ$àÐ*Ñ*ˆà—‘˜#˜rŸx™xÒ(8¸"¿/¹/Ó:KÓLÐMÓNˆØ
�‰�uÔ#ä×ÒÐ4°dÕ;Ü! $Ó'ˆF÷ <ä—<’<ØÒ'Ð(Ü—.’.¬"¯&©&Ñ1Ü—H’H˜c˜U¬"¯.ª.Ä"Ç&Á&Ñ*IÑJñ
ˆô
 	×Ò˜f hÕ/÷ <Õ;ús   Á+DÄ
Dr0   N)7rÞ   rß   rà   rá   r�  r“  r™  r¡  r¦  r«  r²  r.   r5   r6   r   Úskipifr   rƒ  r¥   ÚpathlibÚPathr¹  rÂ  r…  rÎ  rÔ  rÞ  rã  rì  rò  rö  rþ  r  r  r  r  r  r!  r6  r;  rE  rR  rW  r&   r   ÚNotImplementedErrorrv   r[  r`  rg  ro  r	   rt  ry  râ   r0   r+   r)   r‡  r‡  Ê  s‡  † ò	!ò
ò
-òVò
!òKò%ð ‡[�[×ÑÙÓð?ð ð ð ‡[�[×ÑÐ0Ô0Ð9NÐÐOØ‡[�[×Ñ˜[¨3°·±Ð*=Ó>ñ,ó ?ó Póð,ò!ð* ‡[�[×Ññ

ó ð

ð ‡[�[×Ññ	
ó ð	
ð ‡[�[×ÑØ‡[�[×ÑØàˆEØð	
óñ
óó ð
ò>6ò3ò8ò8ð ‡[�[×ÑØ�c™;Ð'¨h¸Ð-Gð ð ñ	4óð	4ò!ò
Sò!ò&8ò!ò @òGòB òKò
ò<
ð  ‡[�[×ÑØà�ˆFØ�LŠLØ˜Ð Ø—k‘k×'Ñ'Ø(Ø.ØGð (ð ñð ×!Ò! $¨¨1¨a°Ó3Ø×!Ò! $¨¨1¨a°Ó3ðð	
óñ$!ó%ð$!ò!ò
(ò0ð* ‡[�[×ÑÐ,Ð5PÐÐQñ0ó Rð0õ0r+   r‡  c                   óR  • \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	 5       rS
 rS rS rS r\R                  R'                  \" 5       SS9S 5       rS rS rS rS rS rS rS rS r\R                  R'                  \" 5       SS9S 5       rSrg)ÚTestParquetFastParqueti¼  c                 ó¤   • Un[         R                  " SSSS9nUR                  S 5      nXCS'   [         R                  " SSS9US'   [	        X15        g )	NrP   r<   z
US/EasternrŠ  rŒ  r¤  rQ   Ú	timedelta)rC   r\   r  r¥  r“   )rÕ   r7   r|   r]   r�  s        r)   r�  Ú!TestParquetFastParquet.test_basic½  sM   € Øˆä�mŠm˜J°°lÑCˆØ�n‰n˜TÓ"ˆØˆ=ÑÜ×,Ò,¨W¸aÑ@ˆˆ;‰Ü˜Õ r+   c           	      ó€  • [         R                  " [        S5      [        [        SS5      5      S.5      n[        nSnSS/Ul        U R                  X!X45        SS/Ul        U R                  X!X45        [        R                  " S	SSSS5      [        R                  " S	SSSS5      /Ul        U R                  X!X45        g )
NrH   r:   rI   rë   r=  r   rb   rc   rY  )rC   rD   rX   rY   r>  rB   rØ   rv   )rÕ   r7   r]   Úerrr¢   s        r)   Útest_columns_dtypes_invalidÚ2TestParquetFastParquet.test_columns_dtypes_invalidÆ  s²   € Ü�\Š\¤T¨%£[¼¼eÀAÀq»kÓ9JÑKÓLˆäˆØ,ˆð ˜�VˆŒ
Ø×!Ñ! "¨#Ô3ð ˜fÐ%ˆŒ
Ø×!Ñ! "¨#Ô3ô ×Ò˜d A q¨!¨QÓ/Ü×Ò˜d A q¨!¨QÓ/ð
ˆŒ
ð 	×!Ñ! "¨#Õ3r+   c                 óÖ   • [         R                  " [        R                  " S5      R	                  SS5      [        S5      S9R                  5       nSnU R                  X![        U5        g )Nrœ  rI   r<   r�  rA   z9Cannot create parquet dataset with duplicate column namesrž  ©rÕ   r7   r]   r¢   s       r)   r¡  Ú-TestParquetFastParquet.test_duplicate_columnsÛ  sK   € ä�\Š\œ"Ÿ)š) B›-×/Ñ/°°1Ó5¼tÀE»{ÑK×PÑPÓRˆØIˆØ×!Ñ! "¬*°cÕ:r+   c                 óŽ  • SS K n[        UR                  5      [        S5      :  aR  [        [        R                  5      [        S5      :¼  a,  UR	                  [
        R                  R                  SS95        [        R                  " S/ SQ05      n[        R                  " SS[        R                  S	/0S
S9n[        XAUSS9  g )Nr   ú	2024.11.0z2.0.0z$fastparquet uses np.float_ in numpy2r   rS   )TNFr[  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_noneÚ*TestParquetFastParquet.test_bool_with_noneá  s¨   € Ûä�;×*Ñ*Ó+¬g°kÓ.BÓBÄwÜ�N‰NóH
ä�WÓóHð ×ÑÜ—‘×!Ñ!ØBð "ð ôô
 �\Š\˜3Ò 3Ð4Ó5ˆÜ—<’<  s¬B¯F©F°CÐ&8Ð 9ÀÑKˆô 	˜¨(ÀÓFr+   c           	      óð   • [         R                  " S[         R                  " SSSS905      nU R                  X![        S 5        [         R                  " S/ SQ05      nSnU R                  X![        U5        g )NrS   Ú2013ÚMr<   r  r©  z"Can't infer object conversion type)rC   rD   r  rØ   r¡   r‰  s       r)   r«  Ú'TestParquetFastParquet.test_unsupportedò  s`   € ä�\Š\˜3¤§¢°¸SÈ!Ñ LÐMÓNˆà×!Ñ! "¬*°dÔ;ô �\Š\˜3¢Ð.Ó/ˆØ2ˆØ×!Ñ! "¬*°cÕ:r+   c                 ó„   • [         R                  " S[         R                  " [        S5      5      05      n[	        X!5        g )NrS   rH   )rC   rD   rÀ  rX   r“   )rÕ   r7   r]   s      r)   rÂ  Ú'TestParquetFastParquet.test_categoricalý  s*   € Ü�\Š\˜3¤§¢¬t°E«{Ó ;Ð<Ó=ˆÜ˜Õ r+   c                 ó  • S[        [        S5      5      0n[        R                  " U5      n[        R
                  " 5        nUR                  XAS SS9  [        XAS/S9nS S S 5        [        W5      S:X  d   eg ! , (       d  f       N = f)NrS   r<   r:   )r*   r€   Úrow_group_offsetsr9  r:  )	rX   rY   rC   rD   r‡   r’   r   r   r  )rÕ   r7   rU   r]   r�   rÆ   s         r)   r;  Ú-TestParquetFastParquet.test_filter_row_groups  sp   € Ø”$”u˜Q“x“.Ð!ˆÜ�\Š\˜!‹_ˆÜ�_Š_Ô $Ø�M‰M˜$°tÈqˆMÑQÜ! $°^Ð4DÑEˆF÷ ô �6‹{˜aÓÐÑ÷ Õús   ÁA9Á9
Bc           	      óD   • [        UUSUR                   S3SU0S US.S9  g )NrÒ  z/fastparquet.parquetrÑ  )r€   rÑ  rÈ  rÓ  )rÕ   rF   rÊ  r7   rË  s        r)   rÔ  Ú(TestParquetFastParquet.test_s3_roundtrip	  s7   € ô 	ØØØÐ)×.Ñ.Ð/Ð/CÐDØ*¨DÐ1Ø)-À$ÑGó	
r+   c                 óö   • SS/nUnUR                  USUS S9  [        R                  R                  U5      (       d   eSS KnUR
                  " [        U5      S5      R                  n[        U5      S:X  d   eg )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ò  Ú4TestParquetFastParquet.test_partition_cols_supported  s|   € à  %˜ˆØˆØ
�‰ØØ Ø)Øð	 	ñ 	
ô �w‰w�~‰~˜h×'Ñ'Ð'Ð'Ûà +× 7Ò 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÓ.Ð.Ñ.r+   c                 óò   • SnUnUR                  USUS S9  [        R                  R                  U5      (       d   eSS KnUR
                  " [        U5      S5      R                  n[        U5      S:X  d   eg )Nru   r   r›  r   Fr:   rœ  r   s           r)   rö  Ú1TestParquetFastParquet.test_partition_cols_string$  sx   € àˆØˆØ
�‰ØØ Ø)Øð	 	ñ 	
ô �w‰w�~‰~˜h×'Ñ'Ð'Ð'Ûà +× 7Ò 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÓ.Ð.Ñ.r+   c                 óö   • SS/nUnUR                  USS US9  [        R                  R                  U5      (       d   eSS KnUR
                  " [        U5      S5      R                  n[        U5      S:X  d   eg )Nru   rq   r   )r*   r€   Úpartition_onr   Fr;   rœ  r   s           r)   Útest_partition_on_supportedÚ2TestParquetFastParquet.test_partition_on_supported4  s|   € à  %˜ˆØˆØ
�‰ØØ ØØ'ð	 	ñ 	
ô �w‰w�~‰~˜h×'Ñ'Ð'Ð'Ûà +× 7Ò 7¼¸H»ÀuÓ M× RÑ RÐÜÐ(Ó)¨QÓ.Ð.Ñ.r+   c           	      ó    • SS/nUnSn[         R                  " [        US9   UR                  USS UUS9  S S S 5        g ! , (       d  f       g = f)Nru   rq   zYCannot use both partition_on and partition_cols. Use partition_cols for partitioning datarž   r   )r*   r€   r¦  rÿ   )r.   r    r¡   r   )rÕ   r  r7   r|   rÿ   r]   r¢   s          r)   Ú3test_error_on_using_partition_cols_and_partition_onÚJTestParquetFastParquet.test_error_on_using_partition_cols_and_partition_onD  sX   € ð ! %˜ˆØˆð ð 	ô �]Š]œ:¨SÓ1Ø�M‰MØØ$Ø Ø+Ø-ð ñ ÷ 2×1Ö1ús	   ¢?¿
Azfastparquet writes into Indexr   c                 ób   • [         R                  " 5       nUR                  5       n[        X!US9  g )Nr  )rC   rD   r!  r“   ©rÕ   r7   r]   rŒ   s       r)   r  Ú+TestParquetFastParquet.test_empty_dataframeW  s$   € ô �\Š\‹^ˆØ—7‘7“9ˆÜ˜¨(Ó3r+   c                 ó|  • SS K n[        UR                  5      [        S5      :”  aN  [        UR                  5      [        S5      :  a,  UR                  [        R
                  R                  SS95        SU/-  n[        R                  " USU0S9nUR                  5       nS	UR                  l        [        XaUS
9  g )Nr   z2022.12rŒ  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   r4  r]   rŒ   s           r)   r6  Ú0TestParquetFastParquet.test_timezone_aware_index^  s¯   € Ûä�;×*Ñ*Ó+¬g°iÓ.@Ó@ÄWØ×#Ñ#óF
ä�KÓ óF!ð ×ÑÜ—‘×!Ñ!ðIð "ð ôð Ð+Ð,Ñ,ˆä�\Š\ ¨>¸3Ð*?Ñ@ˆà—7‘7“9ˆØ%ˆ�‰ÔÜ˜¨(Ó3r+   c           	      ó  • [         R                  " SSS/05      n[        R                  " 5        nUR	                  U5        [
        R                  " [        SS9   [        R                  " [        5         [        USSS9  S S S 5        S S S 5        [
        R                  " [        SS9   [        USS	S
9  S S S 5        S S S 5        g ! , (       d  f       NL= f! , (       d  f       NU= f! , (       d  f       N9= f! , (       d  f       g = f)NrS   r:   r;   z!not supported for the fastparquetrž   r   T)r*   Úuse_nullable_dtypesr    r_  )rC   rD   r‡   r’   r   r.   r    r¡   rÎ   rÏ   r   )rÕ   r7   r]   r�   s       r)   Ú&test_use_nullable_dtypes_not_supportedÚ=TestParquetFastParquet.test_use_nullable_dtypes_not_supportedu  s¶   € Ü�\Š\˜3  A ˜-Ó(ˆä�_Š_Ô $Ø�M‰M˜$ÔÜ—’œzÐ1TÓUÜ×/Ò/´Õ>Ü  ¨mÐQUÒV÷ ?÷ Vô —’œzÐ1TÓUÜ˜T¨-ÀyÒQ÷ V÷ Ð÷ ?Õ>ú÷ VÕUú÷ VÕUú÷ ÕúsS   °+C;ÁCÁ6CÂCÂ
!C;Â+C*Â7C;Ã
CÃCÃ
C'	Ã#C;Ã*
C8	Ã4C;Ã;
D	c                 ón  • [         R                  " S5       n[        R                  " U5      R	                  S5        [
        R                  " [        SS9   [        USS9  S S S 5        [        R                  " U5      R                  SS9  S S S 5        g ! , (       d  f       N:= f! , (       d  f       g = f)	Nútest.parquets   breakitÚ rž   r   rÃ   F)Ú
missing_ok)
r‡   r’   r|  r}  Úwrite_bytesr.   r    Ú	Exceptionr   Úunlink)rÕ   r�   s     r)   Ú$test_close_file_handle_on_read_errorÚ;TestParquetFastParquet.test_close_file_handle_on_read_error€  sx   € Ü�_Š_˜^Ô,°Ü�LŠL˜Ó×*Ñ*¨:Ô6Ü—’œy°Ó3Ü˜T¨-Ò8÷ 4ô �LŠL˜Ó×%Ñ%°Ð%Ñ7÷ -Ð,ç3Õ3ú÷ -Õ,ús#   —?B&ÁBÁ!+B&Â
B#	ÂB&Â&
B4c                 ód  • [         R                  " SS/SS/S.S9n[        R                  " S5       n[	        UR                  5       S5       nUR                  U5        S S S 5        [        X1S9nS S S 5        [        R                  " WU5        g ! , (       d  f       N7= f! , (       d  f       N7= f)Nr   r:   r>   rc  r¶  ÚwbrÃ   )	rC   rD   r‡   r’   r{  Úencoder   r   rˆ   )rÕ   r*   r]   r�   rW   rÆ   s         r)   Útest_bytes_file_nameÚ+TestParquetFastParquet.test_bytes_file_nameˆ  sƒ   € ä�\Š\ a¨ V°1°a°&Ñ9Ñ:ˆÜ�_Š_˜^Ô,°Ü�d—k‘k“m TÔ*¨aØ—‘˜aÔ ÷ +ô " $Ñ6ˆF÷	 -ô
 	×Ò˜f bÕ)÷	 +Õ*ú÷ -Õ,ús#   ²B!ÁBÁB!Â
B	ÂB!Â!
B/c                 óp  • [         R                  " S5        [        R                  " SS/SS/S.S9n[        R
                  " 5        n[         R                  " [        SS9   UR                  USSS	9  S S S 5        S S S 5        [        R
                  " 5        n[        R                  " U5      R                  S
5        [         R                  " [        SS9   [        USSS	9  S S S 5        S S S 5        g ! , (       d  f       N‡= f! , (       d  f       N�= f! , (       d  f       N9= f! , (       d  f       g = f)Nr   r   r:   r>   rc  zfilesystem is not implementedrž   r=   ©r*   rÆ  rb   )r.   rg  rC   rD   r‡   r’   r    r~  r   r|  r}  r¹  r   ©rÕ   r]   r�   s      r)   Útest_filesystem_notimplementedÚ5TestParquetFastParquet.test_filesystem_notimplemented’  sá   € Ü×Ò˜MÔ*Ü�\Š\ a¨ V°1°a°&Ñ9Ñ:ˆÜ�_Š_Ô $Ü—’Ü#Ð+Jóð —‘˜d¨=ÀU�ÑK÷÷ ô �_Š_Ô $Ü�LŠL˜Ó×*Ñ*¨6Ô2Ü—’Ü#Ð+Jóô ˜T¨-ÀEÒJ÷÷ Ð÷õ ú÷ Õú÷õ ú÷ ÕúóH   ÁDÁ!C4Á3DÂ?D'ÃDÃ#D'Ã4
D	Ã>DÄ
DÄ
D$	Ä D'Ä'
D5c                 óp  • [         R                  " S5        [        R                  " SS/SS/S.S9n[        R
                  " 5        n[         R                  " [        SS9   UR                  USSS	9  S S S 5        S S S 5        [        R
                  " 5        n[        R                  " U5      R                  S
5        [         R                  " [        SS9   [        USSS	9  S S S 5        S S S 5        g ! , (       d  f       N‡= f! , (       d  f       N�= f! , (       d  f       N9= f! , (       d  f       g = f)Nr    r   r:   r>   rc  z1filesystem must be a pyarrow or fsspec FileSystemrž   r=   rÄ  rb   )r.   rg  rC   rD   r‡   r’   r    r¡   r   r|  r}  r¹  r   rÅ  s      r)   Útest_invalid_filesystemÚ.TestParquetFastParquet.test_invalid_filesystem¢  sá   € Ü×Ò˜IÔ&Ü�\Š\ a¨ V°1°a°&Ñ9Ñ:ˆÜ�_Š_Ô $Ü—’ÜÐ"Uóð —‘˜d¨9À�ÑG÷÷ ô �_Š_Ô $Ü�LŠL˜Ó×*Ñ*¨6Ô2Ü—’ÜÐ"Uóô ˜T¨)ÀÒF÷÷ Ð÷õ ú÷ Õú÷õ ú÷ ÕúrÈ  c           	      ó´  • [         R                  " S5      n[        R                  " SS/SS/S.S9n[        R
                  " 5        n[         R                  " [        SS9   UR                  USUR                  5       S	S
0S9  S S S 5        S S S 5        [        R
                  " 5        n[        R                  " U5      R                  S5        [         R                  " [        SS9   [        USUR                  5       S	S
0S9  S S S 5        S S S 5        g ! , (       d  f       N˜= f! , (       d  f       N¡= f! , (       d  f       N9= f! , (       d  f       g = f)Nz
pyarrow.fsr   r:   r>   rc  z8storage_options not supported with a pyarrow FileSystem.rž   r    r=   re   )r*   rÆ  rÑ  rb   )r.   rg  rC   rD   r‡   r’   r    r~  r   ÚLocalFileSystemr|  r}  r¹  r   )rÕ   Úpa_fsr]   r�   s       r)   Ú.test_unsupported_pa_filesystem_storage_optionsÚETestParquetFastParquet.test_unsupported_pa_filesystem_storage_options²  s  € Ü×#Ò# LÓ1ˆÜ�\Š\ a¨ V°1°a°&Ñ9Ñ:ˆÜ�_Š_Ô $Ü—’Ü#ØPóð —‘ØØ$Ø$×4Ñ4Ó6Ø%*¨E Nð	 ñ ÷	÷ ô �_Š_Ô $Ü�LŠL˜Ó×*Ñ*¨6Ô2Ü—’Ü#ØPóô ØØ$Ø$×4Ñ4Ó6Ø%*¨E Nò	÷	÷ Ð÷õ ú÷ Õú÷õ ú÷ ÕúsH   ÁD'Á!#DÂD'Â)?E	Ã(D8ÄE	Ä
D$	Ä D'Ä'
D5Ä8
E	ÅE	Å	
Ec           	      óZ  • Sn[         R                  " S[        [        SS5      5      05      n[        R
                  " S5       nUR                  U5        [        R                  " [        US9   [        USS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.rq   r:   rI   ztmp.parquetrž   Únumpy)r`  )rC   rD   rX   rY   r‡   r’   r   r.   r    r¡   r   )rÕ   r*   r¢   r]   r�   s        r)   Útest_invalid_dtype_backendÚ1TestParquetFastParquet.test_invalid_dtype_backendÎ  s{   € ð%ð 	ô �\Š\˜5¤$¤u¨Q°£{Ó"3Ð4Ó5ˆÜ�_Š_˜]Ô+¨tØ�M‰M˜$ÔÜ—’œz°Ó5Ü˜T°Ò9÷ 6÷ ,Ð+ç5Õ5ú÷ ,Õ+ús$   Á+BÁ/BÁ:BÂ
B	ÂBÂ
B*c                 ó¼   • [         R                  " [         R                  " / SQSS9S9n[         R                  " [         R                  " / SQSS9S9n[        X!US9  g )Nr¿  r^  rV  r0  r  r_  r­  s       r)   r`  Ú)TestParquetFastParquet.test_empty_columnsÙ  s@   € ô �\Š\¤§¢ª¸}Ñ MÑNˆÜ—<’<¤b§h¢hªÀ]Ñ&SÑTˆÜ˜¨(Ó3r+   r0   N) rÞ   rß   rà   rá   r�  r†  r¡  r�  r«  rÂ  r;  r.   r5   r…  rÔ  rò  rö  r§  rª  r{  r   r  r6  r³  r¼  rÁ  rÆ  rÊ  rÏ  rÓ  r`  râ   r0   r+   r)   r€  r€  ¼  sß   † ò!ò4ò*;òGò"	;ò!ò ð ‡[�[×Ññ
ó ð
ò/ò /ò /ò ð& ‡[�[×ÑÑ+Ó-Ð6UÐÐVñ4ó Wð4ò4ò.	Rò8ò*òKò Gò ò8	:ð ‡[�[×ÑÑ+Ó-Ð6UÐÐVñ4ó Wó4r+   r€  )	NNNNNTFTr;   )MÚ__doc__rv   Údecimalr   ru  r   r¶  r|  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&   r{  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ä   r‡  r€  r0   r+   r)   Ú<module>ré     sm  ðÙ Û Ý Ý Û 	Û ã Û ÷õ .å -÷õ ó Ý Ý '÷õ ðÛà€MðÛàÐð ‡K�K×ÑÐSÓTØ
‡K�K×ÑØGóð€
ð ‡‚à�ŠØà—‘×"Ñ"Ø)Ô)÷ PÙ"Ð#6¸tÑDÈÑOØQð #ð ð
 —‘×!Ñ!Ù&Ó(Ø;Ø ð "ð ðñ	
ð 	�ŠØØ—+‘+×$Ñ$Ø!Ô!Ð*Dð %ð ñ	
ð!ññ2ó3ð2ð ‡�ñó ðð ‡�ñ	ó ð	ð ‡�ñTó ðTð ‡�ñó ðð" ‡�ñó ðð. ‡‚à×Ñ×Ñ˜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ò(÷"?ñ ?ôp-�ô p-ôf	c0˜ô c0ôdb4˜Tõ b4øðe$ ó ØƒMðûð ó ØÓðús$   Á$L Á+L ÌLÌLÌL!Ì L!