Ë
    ìmxi±H  ã                   ó¼	  — d dl m Z d dlZd dlmZ d dlZ	 d dlZd dl
mZ d dlmZmZmZ d dlmZ 	 d dlZej*                  j-                  dg d¢«      ej*                  j-                  dg d	¢«      d
„ «       «       Zej*                  j-                  ddgddgdfg d¢dfg d¢d fg«      d„ «       Zd„ Zej*                  j&                  ej*                  j-                  d ej4                  «        ej6                  «        ej8                  «       g«      ej*                  j-                  d ej:                  «        ej<                  «        ej>                  «        ej@                  «       g«      ej*                  j-                  d ejB                  «       df ejD                  «       dfg«      d„ «       «       «       «       Z#ej*                  j&                  d„ «       Z$ej*                  j&                  d„ «       Z%ej*                  j&                  d„ «       Z&ej*                  j&                  d„ «       Z'ej*                  j&                  ej*                  j-                  dg d¢«      d„ «       «       Z(ej*                  j&                  ej*                  j-                  d ddg«      d!„ «       «       Z)ej*                  j&                  d"„ «       Z*ej*                  j                  ej*                  j-                  d ej4                  «        ej6                  «        ej8                  «       g«      ej*                  j-                  d ej:                  «        ej<                  «        ej>                  «        ej@                  «       g«      ej*                  j-                  d ejV                  «       d#f ejB                  «       df ejD                  «       dfg«      ej*                  j-                  dg d¢«      ej*                  j-                  dg d$¢«      ej*                  j-                  d%g d&¢«      d'„ «       «       «       «       «       «       «       Z,ej*                  j-                  d%g d(¢«      d)„ «       Z-ej*                  j\                  d*„ «       Z/d+„ Z0ej*                  j&                  d,„ «       Z1ej*                  j&                  d-„ «       Z2d.„ Z3y# e	$ r dZY �Œ´w xY w# e	$ r Y �Œ¥w xY w)/é    ©ÚdatetimeN)ÚVersion)Ú_PyArrowColumnÚColumnNullTypeÚ	DtypeKind)Ú_from_dataframeÚunit)ÚsÚmsÚusÚnsÚtz)Ú úAmerica/New_Yorkú+07:30ú-04:30c           
      óî  — t        ddd«      t        ddd«      d g}t        j                  dt        j                  |t        j                  | |¬«      ¬«      i«      }|j                  «       j                  d«      }|j                  «       dk(  sJ ‚|j                  d	k(  sJ ‚|j                  d
k(  sJ ‚|j                  d	   t        j                  k(  sJ ‚|j                  t        j                  d	fk(  sJ ‚y )Né×  é   é   é   ÚA©r   ©Útypeé   r   é   )ÚdtÚpaÚtableÚarrayÚ	timestampÚ__dataframe__Úget_column_by_nameÚsizeÚoffsetÚ
null_countÚdtyper   ÚDATETIMEÚdescribe_nullr   ÚUSE_BITMASK)r
   r   Údt_arrr!   Úcols        ú`/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/tests/interchange/test_conversion.pyÚtest_datetimer0   +   sÑ   € ô ��q˜"‹oœr $¨¨2›°Ð5€FÜ�H‰H�cœ2Ÿ8™8 F´·±¸dÀrÔ1JÔKÐLÓM€EØ
×
Ñ
Ó
×
2Ñ
2°3Ó
7€Cà�8‰8‹:˜Š?Ðˆ?Ø�:‰:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×-Ñ-Ò-Ð-Ð-Ø×Ñ¤×!;Ñ!;¸QÐ ?Ò?Ð?Ñ?ó    Ú	test_dataÚkindÚfooÚbaré   )g      ø?g      @g      @é   ©r   r7   r   é   c                 óÆ  — t        j                  | «      }t        |«      }|j                  |k(  sJ ‚|j	                  «       t        | «      k(  sJ ‚|j                  d   |k(  sJ ‚|j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  «       d   �J ‚t        t        |j                  «       «      «      dk(  sJ ‚|j                  «       D ]	  }||k(  rŒ	J ‚ y )Nr   r   Úvalidity)r    r"   r   Ú_colr&   Úlenr)   Ú
num_chunksr(   Úget_buffersÚlistÚ
get_chunks)r2   r3   ÚarrÚ
arr_columnÚchunks        r/   Útest_array_to_pyarrowcolumnrE   9   sì   € ô �(‰(�9Ó
€CÜ Ó$€Jà�?‰?˜cÒ!Ð!Ð!Ø�?‰?Ó¤ I£Ò.Ð.Ð.Ø×Ñ˜AÑ $Ò&Ð&Ð&Ø× Ñ Ó" aÒ'Ð'Ð'Ø× Ñ  AÒ%Ð%Ð%Ø×!Ñ!Ó# JÑ/Ð7Ð7Ð7ÜŒt�J×)Ñ)Ó+Ó,Ó-°Ò2Ð2Ð2à×&Ñ&Ó(ò #ˆØ˜
Ó"Ð"Ð"ñ#r1   c                  ó˜  — t        j                  g d¢«      } | j                  dd«      }t        j                  | gdg¬«      }t        j                  |gdg¬«      }|j	                  «       j                  d«      }|j                  dk(  sJ ‚t        |j	                  «       «      }|j                  |«      sJ ‚|j                  |«      rJ ‚y )Nr8   r7   rB   ©ÚnamesÚ
arr_slicedr   )	r    r"   Úslicer!   r$   Ú
get_columnr'   r	   Úequals)rB   rI   r!   Útable_slicedr.   Úresults         r/   Útest_offset_of_sliced_arrayrO   Q   s¬   € Ü
�(‰(’<Ó
 €CØ—‘˜1˜a“€Jä�H‰H�c�U 5 'Ô*€EÜ—8‘8˜Z˜L°°Ô?€Là
×
$Ñ
$Ó
&×
1Ñ
1°!Ó
4€CØ�:‰:˜Š?Ðˆ?ä˜\×7Ñ7Ó9Ó:€FØ×Ñ˜vÔ&Ð&Ð&Ø�|‰|˜FÔ#Ð#Ð#Ð#r1   ÚuintÚintzfloat, np_float_strÚfloat32Úfloat64c                 óJ  — t        t        j                  «      t        d«      k  rt        j                  d«       g d¢}t        j                  t        j                  || ¬«      t        j                  ||¬«      t        j                  t        j                  |t        j                  |«      ¬«      |¬«      g d¢dœ«      }dd	l
m}  ||«      }t        j                  |«      }|j                  |«      sJ ‚|j                  «       }	|j                  «       }
|	j                  «       |
j                  «       k(  sJ ‚|	j!                  «       |
j!                  «       k(  sJ ‚|	j#                  «       |
j#                  «       k(  sJ ‚|	j%                  «       |
j%                  «       k(  sJ ‚y )
Nú1.5.0ú&__dataframe__ added to pandas in 1.5.0)r   r7   r   r   ©r)   ©TFT)ÚaÚbÚcÚdr   ©Úfrom_dataframe)r   ÚpdÚ__version__ÚpytestÚskipr    r!   r"   Únpr)   Úpandas.api.interchanger^   ÚpirL   r$   Únum_columnsÚnum_rowsr>   Úcolumn_names)rP   rQ   ÚfloatÚnp_float_strrB   r!   Úpandas_from_dataframeÚ	pandas_dfrN   Útable_protocolÚresult_protocols              r/   Útest_pandas_roundtripro   j   sO  € ô Œr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=â
€CÜ�H‰Hä—‘˜# DÔ)Ü—‘˜# CÔ(Ü—‘œ"Ÿ(™( 3¬b¯h©h°|Ó.DÔEÈEÔRÚ$ñ		
ó€Eõñ & eÓ,€IÜ×Ñ˜yÓ)€FØ�<‰<˜ÔÐÐà×(Ñ(Ó*€NØ×*Ñ*Ó,€Oà×%Ñ%Ó'¨?×+FÑ+FÓ+HÒHÐHÐHØ×"Ñ"Ó$¨×(@Ñ(@Ó(BÒBÐBÐBØ×$Ñ$Ó&¨/×*DÑ*DÓ*FÒFÐFÐFØ×&Ñ&Ó(¨O×,HÑ,HÓ,JÒJÐJÑJr1   c                  ó|  — t        t        j                  «      t        d«      k  rt        j                  d«       g d¢} t        j                  dt        j                  | «      i«      }ddlm	}  ||«      }t        j                  |«      }|d   j                  «       |d   j                  «       k(  sJ ‚t
        j                  j                  |d   j                  «      sJ ‚t
        j                  j                  |d   j                  «      sJ ‚|j!                  «       }|j!                  «       }|j#                  «       |j#                  «       k(  sJ ‚|j%                  «       |j%                  «       k(  sJ ‚|j'                  «       |j'                  «       k(  sJ ‚|j)                  «       |j)                  «       k(  sJ ‚y )Nú1.6úColumn.size() bug in pandas©rY   r   r[   rY   r   r]   )r   r_   r`   ra   rb   r    r!   r"   rd   r^   re   Ú	to_pylistÚtypesÚ	is_stringr   Úis_large_stringr$   rf   rg   r>   rh   ©rB   r!   rk   rl   rN   rm   rn   s          r/   Útest_pandas_roundtrip_stringry   •   sm  € ô Œr�~‰~Ó¤¨£Ò/Ü�‰Ð1Ô2â
€CÜ�H‰H�cœ2Ÿ8™8 C›=Ð)Ó*€Eõñ & eÓ,€IÜ×Ñ˜yÓ)€Fà�#‰;× Ñ Ó" e¨C¡j×&:Ñ&:Ó&<Ò<Ð<Ð<Ü�8‰8×Ñ˜e C™jŸo™oÔ.Ð.Ð.Ü�8‰8×#Ñ# F¨3¡K×$4Ñ$4Ô5Ð5Ð5à×(Ñ(Ó*€NØ×*Ñ*Ó,€Oà×%Ñ%Ó'¨?×+FÑ+FÓ+HÒHÐHÐHØ×"Ñ"Ó$¨×(@Ñ(@Ó(BÒBÐBÐBØ×$Ñ$Ó&¨/×*DÑ*DÓ*FÒFÐFÐFØ×&Ñ&Ó(¨O×,HÑ,HÓ,JÒJÐJÑJr1   c                  ó^  — t        t        j                  «      t        d«      k  rt        j                  d«       g d¢} t        j                  dt        j                  | t        j                  «       ¬«      i«      }ddl	m
} t        t        j                  «      t        d«      k\  �rO ||«      }t        j                  |«      }|d   j                  «       |d   j                  «       k(  sJ ‚t
        j                  j                  |d   j                  «      sJ ‚t
        j                  j                  |d   j                  «      sJ ‚|j!                  «       }|j!                  «       }|j#                  «       |j#                  «       k(  sJ ‚|j%                  «       |j%                  «       k(  sJ ‚|j'                  «       |j'                  «       k(  sJ ‚|j)                  «       |j)                  «       k(  sJ ‚y t        j*                  t,        «      5   ||«       d d d «       y # 1 sw Y   y xY w)	Nrq   rr   rs   Úa_larger   r   r]   z2.0.1)r   r_   r`   ra   rb   r    r!   r"   Úlarge_stringrd   r^   re   rt   ru   rw   r   r$   rf   rg   r>   rh   ÚraisesÚAssertionErrorrx   s          r/   Ú"test_pandas_roundtrip_large_stringr   ²   s¾  € ô Œr�~‰~Ó¤¨£Ò/Ü�‰Ð1Ô2â
€CÜ�H‰H�i¤§¡¨#´B·O±OÓ4EÔ!FÐGÓH€Eõô Œr�~‰~Ó¤'¨'Ó"2Ó2Ù)¨%Ó0ˆ	Ü×"Ñ" 9Ó-ˆà�iÑ ×*Ñ*Ó,°°iÑ0@×0JÑ0JÓ0LÒLÐLÐLÜ�x‰x×'Ñ'¨¨iÑ(8×(=Ñ(=Ô>Ð>Ð>Ü�x‰x×'Ñ'¨¨yÑ(9×(>Ñ(>Ô?Ð?Ð?à×,Ñ,Ó.ˆØ ×.Ñ.Ó0ˆà×)Ñ)Ó+¨×/JÑ/JÓ/LÒLÐLÐLØ×&Ñ&Ó(¨O×,DÑ,DÓ,FÒFÐFÐFØ×(Ñ(Ó*¨o×.HÑ.HÓ.JÒJÐJÐJØ×*Ñ*Ó,°×0LÑ0LÓ0NÒNÐNÑNô �]‰]œ>Ó*ñ 	)Ù! %Ô(÷	)÷ 	)ñ 	)ús   È	H#È#H,c                  ó8  — t        t        j                  «      t        d«      k  rt        j                  d«       g d¢} t        j                  t        j                  | «      t        j                  | t        j                  «       ¬«      dœ«      }ddl	m
} t        t        j                  «      t        d«      k\  �r( ||«      }t        j                  |«      }|d	   j                  «       |d	   j                  «       k(  sJ ‚t
        j                  j                  |d	   j                  «      sJ ‚t
        j                  j!                  |d	   j                  «      sJ ‚|d
   j                  «       |d
   j                  «       k(  sJ ‚t
        j                  j!                  |d
   j                  «      sJ ‚t
        j                  j!                  |d
   j                  «      sJ ‚y t        j"                  t$        «      5   ||«       d d d «       y # 1 sw Y   y xY w)Nrq   rr   )rY   r   r[   Nr   )rY   r{   r   r]   ú2.0.2rY   r{   )r   r_   r`   ra   rb   r    r!   r"   r|   rd   r^   re   rt   ru   rv   r   rw   r}   ÚNotImplementedError)rB   r!   rk   rl   rN   s        r/   Ú)test_pandas_roundtrip_string_with_missingrƒ   ×   sœ  € ô Œr�~‰~Ó¤¨£Ò/Ü�‰Ð1Ô2â
€CÜ�H‰Hœ2Ÿ8™8 C›=Ü!#§¡¨#´B·O±OÓ4EÔ!FñHó I€Eõô Œr�~‰~Ó¤'¨'Ó"2Ó2Ù)¨%Ó0ˆ	Ü×"Ñ" 9Ó-ˆà�c‰{×$Ñ$Ó&¨%°©*×*>Ñ*>Ó*@Ò@Ð@Ð@Ü�x‰x×!Ñ! %¨¡*§/¡/Ô2Ð2Ð2Ü�x‰x×'Ñ'¨¨s©×(8Ñ(8Ô9Ð9Ð9à�iÑ ×*Ñ*Ó,°°iÑ0@×0JÑ0JÓ0LÒLÐLÐLÜ�x‰x×'Ñ'¨¨iÑ(8×(=Ñ(=Ô>Ð>Ð>Ü�x‰x×'Ñ'¨¨yÑ(9×(>Ñ(>Ô?Ð?Ñ?ô �]‰]Ô.Ó/ñ 	)Ù! %Ô(÷	)÷ 	)ñ 	)ús   Ç>	HÈHc                  óÌ  — t        t        j                  «      t        d«      k  rt        j                  d«       g d¢} t        j                  dt        j                  | «      j                  «       i«      }ddl	m
}  ||«      }t        j                  |«      }|d   j                  «       |d   j                  «       k(  sJ ‚t
        j                  j                  |d   j                  «      sJ ‚t
        j                  j                  |d   j                  «      sJ ‚t
        j                  j!                  |d   j#                  d«      j$                  j                  «      sJ ‚t
        j                  j'                  |d   j#                  d«      j$                  j                  «      sJ ‚t
        j                  j)                  |d   j#                  d«      j*                  j                  «      sJ ‚t
        j                  j-                  |d   j#                  d«      j*                  j                  «      sJ ‚|j/                  «       }|j/                  «       }|j1                  «       |j1                  «       k(  sJ ‚|j3                  «       |j3                  «       k(  sJ ‚|j5                  «       |j5                  «       k(  sJ ‚|j7                  «       |j7                  «       k(  sJ ‚|j9                  d«      }|j9                  d«      }|j:                  d   t<        j>                  k(  sJ ‚|j:                  d   |j:                  d   k(  sJ ‚|jA                  «       |jA                  «       k(  sJ ‚|jB                  |jB                  k(  sJ ‚|jD                  }	|jD                  }
|	d   |
d   k(  sJ ‚|	d   |
d   k(  sJ ‚tG        |
d	   jH                  t
        jJ                  «      sJ ‚y )
Nr�   z;Bitmasks not supported in pandas interchange implementation)	ÚMonÚTuer…   ÚWedr…   ÚThuÚFriÚSatNÚweekdayr   r]   Ú
is_orderedÚis_dictionaryÚ
categories)&r   r_   r`   ra   rb   r    r!   r"   Údictionary_encoderd   r^   re   rt   ru   r�   r   rv   rD   Ú
dictionaryrw   Úis_int32ÚindicesÚis_int8r$   rf   rg   r>   rh   rK   r)   r   ÚCATEGORICALr&   r'   Údescribe_categoricalÚ
isinstancer<   ÚArray)rB   r!   rk   rl   rN   rm   rn   Ú	col_tableÚ
col_resultÚdesc_cat_tableÚdesc_cat_results              r/   Ú!test_pandas_roundtrip_categoricalrœ   ÷   sJ  € äŒr�~‰~Ó¤¨Ó!1Ò1Ü�‰ÐQÔRâ
H€CÜ�H‰HØ	”B—H‘H˜S“M×3Ñ3Ó5Ð6ó€Eõñ & eÓ,€IÜ×Ñ˜yÓ)€Fà�)Ñ×&Ñ&Ó(¨E°)Ñ,<×,FÑ,FÓ,HÒHÐHÐHÜ�8‰8×!Ñ! %¨	Ñ"2×"7Ñ"7Ô8Ð8Ð8Ü�8‰8×!Ñ! &¨Ñ"3×"8Ñ"8Ô9Ð9Ð9Ü�8‰8×Ñ˜e IÑ.×4Ñ4°QÓ7×BÑB×GÑGÔHÐHÐHÜ�8‰8×#Ñ# F¨9Ñ$5×$;Ñ$;¸AÓ$>×$IÑ$I×$NÑ$NÔOÐOÐOÜ�8‰8×Ñ˜U 9Ñ-×3Ñ3°AÓ6×>Ñ>×CÑCÔDÐDÐDÜ�8‰8×Ñ˜F 9Ñ-×3Ñ3°AÓ6×>Ñ>×CÑCÔDÐDÐDà×(Ñ(Ó*€NØ×*Ñ*Ó,€Oà×%Ñ%Ó'¨?×+FÑ+FÓ+HÒHÐHÐHØ×"Ñ"Ó$¨×(@Ñ(@Ó(BÒBÐBÐBØ×$Ñ$Ó&¨/×*DÑ*DÓ*FÒFÐFÐFØ×&Ñ&Ó(¨O×,HÑ,HÓ,JÒJÐJÐJà×)Ñ)¨!Ó,€IØ ×+Ñ+¨AÓ.€Jà×Ñ˜AÑ¤)×"7Ñ"7Ò7Ð7Ð7Ø×Ñ˜AÑ )§/¡/°!Ñ"4Ò4Ð4Ð4Ø�?‰?Ó 	§¡Ó 0Ò0Ð0Ð0Ø×Ñ 	× 0Ñ 0Ò0Ð0Ð0à×4Ñ4€NØ ×5Ñ5€Oà˜,Ñ'¨?¸<Ñ+HÒHÐHÐHØ˜/Ñ*¨o¸oÑ.NÒNÐNÐNÜ�o lÑ3×8Ñ8¼"¿(¹(ÔCÐCÑCr1   c           	      óÎ  — t        t        j                  «      t        d«      k  rt        j                  d«       ddlm}  |ddd«       |ddd«       |ddd	«      g}t        j                  d
t        j                  |t        j                  | «      ¬«      i«      }t        t        j                  «      t        d«      k  r@t        j                  d
t        j                  |t        j                  d«      ¬«      i«      }n|}ddl
m}  ||«      }t        j                  |«      }|j                  |«      sJ ‚|j                  «       }|j                  «       }	|j                  «       |	j                  «       k(  sJ ‚|j!                  «       |	j!                  «       k(  sJ ‚|j#                  «       |	j#                  «       k(  sJ ‚|j%                  «       |	j%                  «       k(  sJ ‚y )NrU   rV   r   r   r   r   r   r   é   rY   r   rq   r   r]   )r   r_   r`   ra   rb   r   r    r!   r"   r#   rd   r^   re   rL   r$   rf   rg   r>   rh   )
r
   r   r-   r!   Úexpectedrk   rl   rN   Úexpected_protocolrn   s
             r/   Útest_pandas_roundtrip_datetimer¡   '  sŠ  € ô Œr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=Ý'ñ ��q˜"‹o™r $¨¨2›±°4¸¸B³Ð@€FÜ�H‰H�cœ2Ÿ8™8 F´·±¸dÓ1CÔDÐEÓF€EäŒr�~‰~Ó¤¨£Ò/ô —8‘8˜S¤"§(¡(¨6¼¿¹ÀTÓ8JÔ"KÐLÓM‰àˆõñ & eÓ,€IÜ×Ñ˜yÓ)€Fà�?‰?˜6Ô"Ð"Ð"à ×.Ñ.Ó0ÐØ×*Ñ*Ó,€Oà×(Ñ(Ó*¨o×.IÑ.IÓ.KÒKÐKÐKØ×%Ñ%Ó'¨?×+CÑ+CÓ+EÒEÐEÐEØ×'Ñ'Ó)¨_×-GÑ-GÓ-IÒIÐIÐIØ×)Ñ)Ó+¨×/KÑ/KÓ/MÒMÐMÑMr1   rj   c           	      óx  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j                  dt
        j                  dgt        j                  | «      ¬«      }d t        ddd«      t        ddd	«      g}t        j                  |t        j                  |d
¬«      dœ«      }t        j                  t        j                  |d¬«      t        j                  |t        j                  d«      ¬«      dœ«      }t        j                  |«      }|j!                  |«      sJ ‚y )NrU   rV   r   r7   rW   r   r   r   rž   zdatetime64[ns])rY   r   T)Úfrom_pandasr   r   )r   r_   r`   ra   rb   rc   r"   Únanr)   r   Ú	DataFramer    r!   r#   re   r^   rL   )rj   Únp_arrayÚdatetime_arrayÚdfrŸ   rN   s         r/   Ú#test_pandas_to_pyarrow_with_missingr©   K  sé   € ô
 Œr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=ä�x‰x˜œBŸF™F A˜¬b¯h©h°|Ó.DÔE€HØœB˜t Q¨›O¬R°°a¸«_Ð=€NÜ	�‰àä�h‰h�~Ð-=Ô>ñ	ó 
€Bô �x‰xÜ�X‰X�h¨DÔ1Ü�h‰h�~¬B¯L©L¸Ó,>Ô?ñó €Hô ×Ñ˜rÓ"€Fà�=‰=˜Ô"Ð"Ñ"r1   c                  ó˜  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j                  dt
        j                  dgt
        j                  ¬«      } t        j                  d| i«      }t        j                  t        «      5  t        j                  |«       d d d «       y # 1 sw Y   y xY w)NrU   rV   r   r7   rW   rY   )r   r_   r`   ra   rb   rc   r"   r¤   Úfloat16r¥   r}   r‚   re   r^   )r¦   r¨   s     r/   Ú+test_pandas_to_pyarrow_float16_with_missingr¬   d  s‡   € äŒr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=ô
 �x‰x˜œBŸF™F A˜¬b¯j©jÔ9€HÜ	�‰�s˜H�oÓ	&€Bä	�‰Ô*Ó	+ñ Ü
×Ñ˜"Ô÷÷ ñ ús   Â!C Ã C	r«   )r   r   r   zoffset, length))r   r   ©r   r7   )r   r7   ©r7   r   c                 ó€  — ddl m } g d¢}	 |ddd«      d  |ddd«      g}
t        j                  t        j                  |	| ¬«      t        j                  |	|¬«      t        j                  t	        j                  |	t	        j
                  |«      ¬	«      |d
¬«      g d¢g d¢g d¢t        j                  |
t        j                  ||¬«      ¬«      dœ«      }|j                  ||«      }t        |j                  «       «      }|j                  |«      sJ ‚|j                  «       }|j                  «       }|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚y )Nr   r   )r   r7   Nr   r   r   rž   r   rW   T)r   r£   rX   )TFN)rY   Nr[   r   )rY   rZ   r[   r\   ÚeÚfÚg)r   r    r!   r"   rc   r)   r#   rJ   r	   r$   rL   rf   rg   r>   rh   )rP   rQ   ri   rj   r
   r   r'   Úlengthr   rB   r-   r!   rN   rm   rn   s                  r/   Útest_pyarrow_roundtripr´   s  ss  € õ( (Ú
€CÙ��q˜"‹o˜t¡R¨¨a°£_Ð5€Fä�H‰Hä—‘˜# DÔ)Ü—‘˜# CÔ(Ü—‘œ"Ÿ(™( 3¬b¯h©h°|Ó.DÔEØ$°$ô8â$Ú$Ú!Ü—‘˜&¤r§|¡|°D¸RÔ'@ÔAñ		
ó€Eð �K‰K˜ Ó'€EÜ˜U×0Ñ0Ó2Ó3€Fà�<‰<˜ÔÐÐà×(Ñ(Ó*€NØ×*Ñ*Ó,€Oà×%Ñ%Ó'¨?×+FÑ+FÓ+HÒHÐHÐHØ×"Ñ"Ó$¨×(@Ñ(@Ó(BÒBÐBÐBØ×$Ñ$Ó&¨/×*DÑ*DÓ*FÒFÐFÐFØ×&Ñ&Ó(¨O×,HÑ,HÓ,JÒJÐJÑJr1   ))r   é
   r­   )r   r   r®   c                 óL  — g d¢}t        j                  dt        j                  |«      j                  «       i«      }|j	                  | |«      }t        |j                  «       «      }|j                  |«      sJ ‚|j                  «       }|j                  «       }|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  «       |j                  «       k(  sJ ‚|j                  d«      }|j                  d«      }|j                  d   t        j                  k(  sJ ‚|j                  d   |j                  d   k(  sJ ‚|j!                  «       |j!                  «       k(  sJ ‚|j"                  |j"                  k(  sJ ‚|j$                  }	|j$                  }
|	d   |
d   k(  sJ ‚|	d   |
d   k(  sJ ‚t'        |
d   j(                  t         j*                  «      sJ ‚y )N)	r…   r†   r…   r‡   r…   rˆ   r‰   NÚSunr‹   r   rŒ   r�   rŽ   )r    r!   r"   r�   rJ   r	   r$   rL   rf   rg   r>   rh   rK   r)   r   r”   r&   r'   r•   r–   r<   r—   )r'   r³   rB   r!   rN   rm   rn   r˜   r™   rš   r›   s              r/   Ú"test_pyarrow_roundtrip_categoricalr¸   ¥  sý  € â
H€CÜ�H‰HØ	”B—H‘H˜S“M×3Ñ3Ó5Ð6ó€Eð �K‰K˜ Ó'€EÜ˜U×0Ñ0Ó2Ó3€Fà�<‰<˜ÔÐÐà×(Ñ(Ó*€NØ×*Ñ*Ó,€Oà×%Ñ%Ó'¨?×+FÑ+FÓ+HÒHÐHÐHØ×"Ñ"Ó$¨×(@Ñ(@Ó(BÒBÐBÐBØ×$Ñ$Ó&¨/×*DÑ*DÓ*FÒFÐFÐFØ×&Ñ&Ó(¨O×,HÑ,HÓ,JÒJÐJÐJà×)Ñ)¨!Ó,€IØ ×+Ñ+¨AÓ.€Jà×Ñ˜AÑ¤)×"7Ñ"7Ò7Ð7Ð7Ø×Ñ˜AÑ )§/¡/°!Ñ"4Ò4Ð4Ð4Ø�?‰?Ó 	§¡Ó 0Ò0Ð0Ð0Ø×Ñ 	× 0Ñ 0Ò0Ð0Ð0à×3Ñ3€NØ ×5Ñ5€Oà˜,Ñ'¨?¸<Ñ+HÒHÐHÐHØ˜/Ñ*¨o¸oÑ.NÒNÐNÐNÜ�o lÑ3×8Ñ8¼"¿(¹(ÔCÐCÑCr1   c                  ó6  — t        j                  dgdz  d¬«      } t        j                  | t        j                  «       ¬«      }t        j                  |gdg¬«      }t        |j                  «       «      }|j                  «       j                  d«      }|j                  «       dk(  sJ ‚t        j                  j                  |d   j                  «      sJ ‚t        j                  j                  |d   j                  «      sJ ‚|j                  |«      sJ ‚y )	Ns   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxi  0 ÚobjectrW   r   r|   rG   r   )rc   r"   r    r|   r!   r	   r$   rK   r&   ru   rw   r   rL   )ÚdatarB   r!   rN   r.   s        r/   Ú#test_pyarrow_roundtrip_large_stringr¼   È  sÙ   € ô �8‰8�Y�K Ñ+°8Ô<€DÜ
�(‰(�4œbŸo™oÓ/Ô
0€CÜ�H‰H�c�U >Ð"2Ô3€Eä˜U×0Ñ0Ó2Ó3€FØ
×
Ñ
Ó
 ×
+Ñ
+¨AÓ
.€Cà�8‰8‹:˜Ò"Ð"Ð"Ü�8‰8×#Ñ# E¨!¡H§M¡MÔ2Ð2Ð2Ü�8‰8×#Ñ# F¨1¡I§N¡NÔ3Ð3Ð3à�<‰<˜ÔÐÑr1   c                  ó¶   — t        j                  dg d¢i«      } t        j                  t        «      5  | j                  d¬«       d d d «       y # 1 sw Y   y xY w)NrY   r8   T)Únan_as_null)r    r!   ra   r}   ÚRuntimeErrorr$   )r!   s    r/   Útest_nan_as_nullrÀ   Ù  sG   € Ü�H‰H�cš<Ð(Ó)€EÜ	�‰”|Ó	$ñ .Ø×Ñ¨ÐÔ-÷.÷ .ñ .ús   ³AÁAc            
      ó  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j
                  dg d¢i«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       t        j
                  dd t        dd	d
«      t        dd	d«      gi«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       y # 1 sw Y   ŒsxY w# 1 sw Y   y xY w)NrU   rV   rY   )r   g      ð?g       @F©Ú
allow_copyr   r   r   r   rž   )r   r_   r`   ra   rb   r¥   r}   r¿   re   r^   r   ©r¨   s    r/   Útest_allow_copy_falserÅ   ß  sÔ   € äŒr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=ô
 
�‰�sšMÐ*Ó	+€BÜ	�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ô 
�‰Øˆt”R˜˜a “_¤b¨¨q°"£oÐ6ðó 
€Bô 
�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ð 0÷0ð 0ú÷0ð 0ús   Á-C7ÃDÃ7D ÄDc                  ó®  — t        t        j                  «      t        d«      k  rt        j                  d«       t        j
                  dg d¢i«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       t        j
                  dg d¢i«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       t        j
                  dg d	¢i«      } | j                  d
«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       t        j
                  dg d¢i«      } | j                  d
«      } t        j                  t        «      5  t        j                  | d¬«       d d d «       y # 1 sw Y   �Œ#xY w# 1 sw Y   ŒÝxY w# 1 sw Y   Œ†xY w# 1 sw Y   y xY w)NrU   rV   rY   )NFTFrÂ   rX   r‹   )rY   rZ   NÚcategory)rY   rZ   r[   )r   r_   r`   ra   rb   r¥   r}   r¿   re   r^   ÚastyperÄ   s    r/   Ú&test_allow_copy_false_bool_categoricalrÉ   ò  sa  € äŒr�~‰~Ó¤¨Ó!1Ò1Ü�‰Ð<Ô=ô
 
�‰�sÒ/Ð0Ó	1€BÜ	�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ô 
�‰�sÒ/Ð0Ó	1€BÜ	�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ô 
�‰�yÒ"2Ð3Ó	4€BØ	�‰�:Ó	€BÜ	�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ô 
�‰�y¢/Ð2Ó	3€BØ	�‰�:Ó	€BÜ	�‰”|Ó	$ñ 0Ü
×Ñ˜"¨Õ/÷0ð 0÷0ñ 0ú÷0ð 0ú÷
0ð 0ú÷
0ð 0ús0   Á-F&Â?F3Ä"F?ÆGÆ&F0Æ3F<Æ?GÇGc                  óÜ   — t        j                  dt        j                  «       fg«      } t        j                  g g| ¬«      }|j	                  «       }t        j                  |«      |k(  sJ ‚y )NÚcol1)Úschema)r    rÌ   Úint8r!   r$   re   r^   )rÌ   r¨   Údfis      r/   Útest_empty_dataframerÏ     sW   € Ü�Y‰Y˜¤§¡£Ð+Ð,Ó-€FÜ	�‰�2�$˜vÔ	&€BØ
×
Ñ
Ó
€CÜ×Ñ˜SÓ! RÒ'Ð'Ñ'r1   )4r   r   Úpyarrowr    Úpyarrow.vendored.versionr   ra   Únumpyrc   ÚImportErrorÚpyarrow.interchangeÚinterchangere   Úpyarrow.interchange.columnr   r   r   Ú"pyarrow.interchange.from_dataframer	   Úpandasr_   ÚmarkÚparametrizer0   rE   rO   Úuint8Úuint16Úuint32rÍ   Úint16Úint32Úint64rR   rS   ro   ry   r   rƒ   rœ   r¡   r©   r¬   r«   r´   r¸   Úlarge_memoryr¼   rÀ   rÅ   rÉ   rÏ   © r1   r/   ú<module>rã      sÄ  ðõ$ $Û Ý ,Û ðÛõ !÷ñ õ
 ?ð	Ûð ‡�×Ñ˜Ò!8Ó9Ø‡�×Ñ˜ÒKÓLñ	@ó Mó :ð	@ð ‡�×ÑØ�&Ðà
�ˆ˜ÐÚ	˜!ÐÚ	�qÐðóñ#óð#ò $ð2 ‡�×ÑØ‡�×ÑØ
ˆXˆR�X‰X‹Z˜˜Ÿ™› i b§i¡i£kÐ2óð ‡�×ÑØ	ˆGˆB�G‰G‹I�x�r—x‘x“z 8 2§8¡8£:¨x¨r¯x©x«zÐ:óð ‡�×ÑØà	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!ðóñKóóóó ðKð: ‡�×ÑñKó ðKð8 ‡�×Ññ!)ó ð!)ðH ‡�×Ññ)ó ð)ð> ‡�×Ññ,Dó ð,Dð^ ‡�×ÑØ‡�×Ñ˜Ò!8Ó9ñNó :ó ðNðD ‡�×ÑØ‡�×ÑØ�Y 	Ð*óñ#óó ð#ð* ‡�×Ññó ðð ‡�×ÑØ‡�×ÑØ
ˆXˆR�X‰X‹Z˜˜Ÿ™› i b§i¡i£kÐ2óð ‡�×ÑØ	ˆGˆB�G‰G‹I�x�r—x‘x“z 8 2§8¡8£:¨x¨r¯x©x«zÐ:óð ‡�×ÑØØ	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!Ø	ˆ�‰‹�yÐ!ðóð ‡�×Ñ˜Ò!8Ó9Ø‡�×Ñ˜ÒGÓHØ‡�×ÑÐ)Ò+KÓLñKó Mó Ió :óóóó ð"KðB ‡�×ÑÐ)Ò+LÓMñDó NðDðD ‡�×Ññ ó ð ò .ð ‡�×Ññ0ó ð0ð$ ‡�×Ññ0ó ð0ó4(øði ò Ø	ƒBðûð ò 	Úð	ús"   –S ±S ÓSÓSÓSÓS