Ë
    ¤eh¦M  ã                   ó4  — d dl m Z mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlZd dlmZ d dlmZ d dlmZmZ d dlmZ d d	lmZ ej4                  d
„ «       Zej4                  d„ «       Zej:                  j=                  dddg«      d„ «       Zd„ Z d„ Z!d„ Z"ej:                  j=                  dd dd e#d«      dgfdd e#d«      dgfdddgfd dd e#d«      gfd ddgfdd e#d«      gfg«      d„ «       Z$ej:                  j=                  dd„ d„ d„ d„ d„ g«      d„ «       Z%d „ Z&ej:                  j=                  dg d!¢g d"¢d#œg d$¢g d"¢d#œ ejN                  g d%¢«       ejN                  g d$¢«       ejN                  g d"¢«      d&œg«      d'„ «       Z(d(„ Z)d)„ Z*d*„ Z+d+„ Z,ej:                  j[                  ed,¬-«      d.„ «       Z.ej:                  j=                  di d/g ig«      d0„ «       Z/dld2„Z0dld3„Z1d4„ Z2ej:                  j=                  d5d6d7g«      ej:                  j=                  d8g d9¢«      d:„ «       «       Z3d;„ Z4dld<„Z5d=„ Z6d>„ Z7d?„ Z8d@„ Z9ej:                  j=                  dAg dB¢dCdDfg dB¢dEdDfg dB¢dFdGfg dB¢dHdGfg dB¢dIdJfg dB¢dKdJfg dL¢dMdNfg dL¢dOdNfg dP¢dQdRfg dP¢dSdRfg dT¢dUdVfg dT¢dWdVf e dXdd«       e dXdd«      dgdYdZf e dXdd«       e dXdd«      dgd[d\f e dXddejt                  ¬]«       e dXddejt                  ¬]«      dgd^d_fg«      de;d`e<dae<d1dfdb„«       Z=ej:                  j=                  dAg dc¢dCdDfg dc¢dEdDfg dc¢dFdGfg dc¢dHdGfg dc¢dIdJfg dc¢dKdJfg dd¢dMdNfg dd¢dOdNfg de¢dQdRfg de¢dSdRfg df¢dUdVfg df¢dWdVf e dXdd«       e dXdd«       e dXddg«      gdYdZf e dXdd«       e dXdd«       e dXddg«      gd[d\f e dXddejt                  ¬]«       e dXddejt                  ¬]«       e dXddgejt                  ¬]«      gd^d_fg«      de;d`e<dae<d1dfdh„«       Z>dldi„Z?dldj„Z@dk„ ZAy)mé    )ÚdatetimeÚtimezoneN)ÚiNaT)Úis_ci_environmentÚis_platform_windows)Únp_version_lt1p23)ÚPandasColumn)ÚColumnNullTypeÚ	DtypeKind©Úfrom_dataframe)ÚArrowCTypesc                  ó�   — t        j                  t        d«      dz  d¬«      t        j                  t        d«      dz  d¬«      dœS )NÚtestdataé   T)ÚorderedF)r   Ú	unordered)ÚpdÚCategoricalÚlist© ó    ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/interchange/test_impl.pyÚdata_categoricalr      s>   € ô —>‘>¤$ zÓ"2°RÑ"7ÀÔFÜ—^‘^¤D¨Ó$4°rÑ$9À5ÔIñð r   c                  ó0   — dddddt         j                  giS )Núseparator datazabC|DeF,Hikz234,3245.67zgSaf,qWer|Grez
asd3,4sad|)ÚnpÚnanr   r   r   Ústring_datar   #   s)   € ð 	ØØØØÜ�F‰Fð
ðð r   Údata)r   T)r   Fc                 ó†  — t        j                  d|| d      i«      }|j                  «       j                  d«      }|j                  d   t
        j                  k(  sJ ‚|j                  dk(  sJ ‚|j                  t        j                  dfk(  sJ ‚|j                  «       dk(  sJ ‚|j                  }|d   | d   k(  sJ ‚|d   du sJ ‚t        |d   t        «      sJ ‚t        j                   |d   j"                  t        j$                  g d	¢«      «       t        j&                  |t)        |j                  «       «      «       y )
NÚAr   éÿÿÿÿé   Ú
is_orderedÚis_dictionaryTÚ
categories)ÚaÚdÚeÚsÚt)r   Ú	DataFrameÚ__dataframe__Úget_column_by_nameÚdtyper   ÚCATEGORICALÚ
null_countÚdescribe_nullr
   ÚUSE_SENTINELÚ
num_chunksÚdescribe_categoricalÚ
isinstancer	   ÚtmÚassert_series_equalÚ_colÚSeriesÚassert_frame_equalr   )r    r   ÚdfÚcolÚdesc_cats        r   Útest_categorical_dtyper@   0   s,  € ä	�‰�sÐ-¨d°1©gÑ6Ð8Ó	9€Bà
×
Ñ
Ó
×
/Ñ
/°Ó
4€CØ�9‰9�Q‰<œ9×0Ñ0Ò0Ð0Ð0Ø�>‰>˜QÒÐÐØ×Ñ¤×!<Ñ!<¸bÐ AÒAÐAÐAØ�>‰>Ó˜qÒ Ð Ð Ø×'Ñ'€HØ�LÑ! T¨!¡WÒ,Ð,Ð,Ø�OÑ$¨Ñ,Ð,Ð,Ü�h˜|Ñ,¬lÔ;Ð;Ð;Ü×ÑØ�Ñ×#Ñ#¤R§Y¡YÒ/HÓ%Iôô ×Ñ˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   c                  óZ  — t        j                  dd«      } g d¢}| j                  d| j                  |«      j	                  «       i«      }|j                  «       }t        |«      }t        j                  |g d¢¬«      }t        j                  d|i«      }t        j                  ||«       y )NÚpyarrowú11.0.0)	ÚMonÚTuerD   ÚWedrD   ÚThuÚFriÚSatÚSunÚweekday)rD   rE   rF   rG   rH   rI   rJ   )r'   )ÚpytestÚimportorskipÚtableÚarrayÚdictionary_encoder.   r   r   r   r-   r8   r<   )ÚpaÚarrrN   Úexchange_dfÚresultrK   Úexpecteds          r   Útest_categorical_pyarrowrV   D   sŽ   € ä	×	Ñ	˜Y¨Ó	1€Bâ
I€CØ�H‰H�i §¡¨#£×!@Ñ!@Ó!BÐCÓD€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�n‰nØÒIô€Gô �|‰|˜Y¨Ð0Ó1€HÜ×Ñ˜& (Õ+r   c                  ó¨  — t        j                  dd«      } d g}| j                  d| j                  |d«      j	                  «       i«      }|j                  «       }t        j                  j                  j                  |«      }t        j                  dt        j                  t        j                  g«      i«      }t        j                  ||«       y )NrB   rC   rR   Úfloat64)rL   rM   rN   rO   rP   r.   r   ÚapiÚinterchanger   r-   r   r   r   r8   r<   ©rQ   rR   rN   rS   rT   rU   s         r   Útest_empty_categorical_pyarrowr\   S   sœ   € ä	×	Ñ	˜Y¨Ó	1€Bàˆ&€CØ�H‰H�e˜RŸX™X c¨9Ó5×GÑGÓIÐJÓK€EØ×%Ñ%Ó'€KÜ�V‰V×Ñ×.Ñ.¨{Ó;€FÜ�|‰|˜U¤B§N¡N´B·F±F°8Ó$<Ð=Ó>€HÜ×Ñ˜& (Õ+r   c                  ó€  — t        j                  dd«      } ddg}| j                  d| j                  |d«      i«      }|j	                  «       }t        |«      }t        j                  dddgi«      }t        j                  ||«       | j                  j                  | j                  j                  |«      |«      sJ ‚y )NrB   rC   rD   rE   rK   Úlarge_string)rL   rM   rN   rO   r.   r   r   r-   r8   r<   ÚTableÚequalsrZ   r[   s         r   Útest_large_string_pyarrowra   _   s£   € ä	×	Ñ	˜Y¨Ó	1€Bà�%ˆ.€CØ�H‰H�i §¡¨#¨~Ó!>Ð?Ó@€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�|‰|˜Y¨°¨Ð7Ó8€HÜ×Ñ˜& (Ô+ð �8‰8�?‰?˜2Ÿ>™>×8Ñ8¸Ó@À%ÔHÐHÑHr   )ÚoffsetÚlengthÚexpected_valuesçffffff
@r   çÍÌÌÌÌÌ @r$   é   c                 ó|  — t        j                  dd«      }g d¢}|j                  d|i«      j                  | |«      }|j	                  «       }t        |«      }t        j                  d|i«      }t        j                  ||«       |j                  j                  |j                  j                  |«      |«      sJ ‚y )NrB   rC   )re   Nrf   rR   )rL   rM   rN   Úslicer.   r   r   r-   r8   r<   r_   r`   rZ   )	rb   rc   rd   rQ   rR   rN   rS   rT   rU   s	            r   Útest_bitmasks_pyarrowrj   n   sž   € ô 
×	Ñ	˜Y¨Ó	1€Bâ
€CØ�H‰H�e˜S�\Ó"×(Ñ(¨°Ó8€EØ×%Ñ%Ó'€KÜ˜KÓ(€FÜ�|‰|˜U OÐ4Ó5€HÜ×Ñ˜& (Ô+ð �8‰8�?‰?˜2Ÿ>™>×8Ñ8¸Ó@À%ÔHÐHÑHr   c                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrg   iœÿÿÿéd   ©r   ÚrandomÚdefault_rngÚintegersr   r   r   ú<lambda>rq   ‹   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°$¸Ó<€ r   c                  ó`   — t         j                  j                  d«      j                  dd«      S )Nrg   r$   rl   rm   r   r   r   rq   rq   Œ   s"   € ”—	‘	×%Ñ% aÓ(×1Ñ1°!°SÓ9€ r   c                  ó\   — t         j                  j                  d«      j                  «       S )Nrg   )r   rn   ro   r   r   r   rq   rq   �   s   € ”—	‘	×%Ñ% aÓ(×/Ñ/Ó1€ r   c                  ób   — t         j                  j                  d«      j                  ddg«      S )Nrg   TF)r   rn   ro   Úchoicer   r   r   rq   rq   Ž   s$   € ”—	‘	×%Ñ% aÓ(×/Ñ/°°u°Ó>€ r   c                  ó,  — t        t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      t        j                  j                  d«      j	                  dd«      ¬«      S )Nrg   il  i4  r$   é   é   )ÚyearÚmonthÚday)r   r   rn   ro   rp   r   r   r   rq   rq   �   sh   € ”Ü—‘×&Ñ& qÓ)×2Ñ2°4¸Ó>Ü—)‘)×'Ñ'¨Ó*×3Ñ3°A°rÓ:Ü—	‘	×%Ñ% aÓ(×1Ñ1°!°RÓ8ô
€ r   c           
      ó
  ‡ — d\  }}t        |«      D ��ci c]9  }dt        ||dz  z
  |z  dz   «      › �t        |«      D �cg c]	  } ‰ «       ‘Œ c}“Œ; c}}Š t        j                  ‰ «      }|j	                  «       }|j                  «       |k(  sJ ‚|j                  «       |k(  sJ ‚t        |j                  «       «      t        ‰ j                  «       «      k(  sJ ‚d}t        ˆ fd„|D «       «      }t        |j                  |«      «      }	t        |j                  |«      «      }
t        j                  |	|
«       t!        |	j"                  d   t        «      sJ ‚t!        |
j"                  d   t        «      sJ ‚y c c}w c c}}w )N)é
   rx   r>   rg   r$   )r   rg   c              3   óV   •K  — | ]   }t        ‰j                  «       «      |   –— Œ" y ­w©N)r   Úkeys)Ú.0Úidxr    s     €r   ú	<genexpr>z!test_dataframe.<locals>.<genexpr>¦   s!   øè ø€ Ò<¨S”$�t—y‘y“{Ó# CÕ(Ñ<ùs   ƒ&)Ú_INTERCHANGE_PROTOCOL_BUFFERS)ÚrangeÚintr   r-   r.   Únum_columnsÚnum_rowsr   Úcolumn_namesr€   Útupler   Úselect_columnsÚselect_columns_by_namer8   r<   r7   Úattrs)r    ÚNCOLSÚNROWSÚiÚ_r=   Údf2ÚindicesÚnamesrT   rU   s   `          r   Útest_dataframer•   ˆ   s]  ø€ ð �L€Eˆ5ô �u“÷àð Œc�1�u˜q‘y‘= EÑ)¨AÑ-Ó.Ð/Ð0Ä5ÈÃ<Ö2P¸a±4µ6Ò2PÑPó€Dô 
�‰�dÓ	€Bà
×
Ñ
Ó
€Cà�?‰?Ó Ò%Ð%Ð%Ø�<‰<‹>˜UÒ"Ð"Ð"ä�× Ñ Ó"Ó#¤t¨D¯I©I«KÓ'8Ò8Ð8Ð8à€GÜÓ<°GÔ<Ó<€Eä˜C×.Ñ.¨wÓ7Ó8€FÜ˜c×8Ñ8¸Ó?Ó@€HÜ×Ñ˜& (Ô+ä�f—l‘lÐ#BÑCÄTÔJÐJÐJÜ�h—n‘nÐ%DÑEÄtÔLÐLÑLùò) 3Qùós   •+E?Á E:ÁE?Å:E?c            
      ó"  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } t        j                  j                  d«      }| j                  D �ci c]  }||j                  dt        | «      ¬«      “Œ! }}|j                  «       D ]S  \  }}| j                  |j                  t        j                  t        | «      «      |d¬	«         }d | j                  ||f<   ŒU | j                  «       }|j                  d
«      j                   |d
   k(  sJ ‚|j                  d«      j                   |d   k(  sJ ‚|j                  d«      j                   |d   k(  sJ ‚y c c}w )N)ç      ð?ç       @g      @g      @ç        )ç      ø?ç      @ç      @g      @r   )r—   r™   r—   r—   r—   ©ÚxÚyÚzrg   r   )ÚlowÚhighF)ÚsizeÚreplacerž   rŸ   r    )r   r-   r   rO   rn   ro   Úcolumnsrp   ÚlenÚitemsÚindexru   ÚarangeÚlocr.   r/   r2   )r=   Úrngr>   Ú	dict_nullÚ	num_nullsÚnull_idxr’   s          r   Útest_missing_from_maskedr¯   °   sY  € Ü	�‰ä—‘Ò3Ó4Ü—‘Ò1Ó2Ü—‘Ò3Ó4ñ	
ó
€Bô �)‰)×
Ñ
 Ó
"€CØCEÇ:Á:ÖN¸C��c—l‘l q¬s°2«w�lÓ7Ñ7ÐN€IÐNØ#Ÿ/™/Ó+ò %‰ˆˆYØ—8‘8Ø�J‰J”r—y‘y¤ R£Ó)°	À5ˆJÓIñ
ˆð !%ˆ�‰ˆx˜ˆ}Òð	%ð ×
Ñ
Ó
€Cà×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÐCØ×!Ñ! #Ó&×1Ñ1°Y¸s±^ÒCÐCÑCùò Os   Â$F)rš   r›   rœ   )çffffff"@ç      %@çš™™™™™'@)rž   rŸ   )r$   rg   r   )TTFr�   c                 ó°   — t        j                  | «      }|j                  «       }|j                  D ]"  }|j	                  |«      j
                  dk(  rŒ"J ‚ y )Nr   )r   r-   r.   r¥   r/   r2   )r    r=   r’   Úcol_names       r   Útest_mixed_datarµ   È   sT   € ô 
�‰�dÓ	€BØ
×
Ñ
Ó
€Cà—J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@r   c                  ó6  — t        j                  t        j                  g d¢«      t        j                  g d¢«      t        j                  g d¢«      dœ«      } | j	                  «       }| j
                  D ]"  }|j                  |«      j                  dk(  rŒ"J ‚ y )N)TNFNT)Nrg   Nr$   rg   )r°   r±   Nr²   Nr�   rg   )r   r-   r   rO   r.   r¥   r/   r2   )r=   r’   r´   s      r   Útest_mixed_missingr·   Ü   s€   € Ü	�‰ä—‘Ò9Ó:Ü—‘Ò/Ó0Ü—‘Ò7Ó8ñ	
ó
€Bð ×
Ñ
Ó
€Cà—J‘Jò @ˆØ×%Ñ% hÓ/×:Ñ:¸aÓ?Ð?Ð?ñ@r   c                 ón  — | d   dgz   }t        j                  d|i«      }|j                  «       j                  d«      }|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 ‚|dd  }|j                  «       j                  d«      }|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 )Nr   Ú r"   é   r$   r   é   )r   r-   r.   r/   r£   r2   r0   r   ÚSTRINGr3   r
   ÚUSE_BYTEMASK)r   Útest_str_datar=   r>   Ú	df_sliceds        r   Útest_stringrÀ   ë   s"  € ØÐ 0Ñ1°R°DÑ8€MÜ	�‰�s˜MÐ*Ó	+€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€Cà�8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×+Ñ+Ò+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ò@Ð@Ð@à�1�2�€IØ
×
!Ñ
!Ó
#×
6Ñ
6°sÓ
;€CØ�8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×+Ñ+Ò+Ð+Ð+Ø×Ñ¤×!<Ñ!<¸aÐ @Ò@Ð@Ñ@r   c                  óì   — t        j                  dg d¢i«      } | j                  «       j                  d«      }t	        j
                  t        d¬«      5  |j                   d d d «       y # 1 sw Y   y xY w)Nr"   )r(   r}   r—   r   znot supported yet©Úmatch)r   r-   r.   r/   rL   ÚraisesÚNotImplementedErrorr0   ©r=   r>   s     r   Útest_nonstring_objectrÇ   ý   s[   € Ü	�‰�sÒ.Ð/Ó	0€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ	�‰Ô*Ð2EÔ	Fñ Ø�	Š	÷÷ ñ ús   ÁA*Á*A3c                  óê  — t        j                  dt        j                  d«      t         j                  gi«      } | j	                  «       j                  d«      }|j                  «       dk(  sJ ‚|j                  dk(  sJ ‚|j                  d   t        j                  k(  sJ ‚|j                  t        j                  t        fk(  sJ ‚t        j                   | t#        | j	                  «       «      «       y )Nr"   z
2022-01-01rg   r$   r   )r   r-   Ú	TimestampÚNaTr.   r/   r£   r2   r0   r   ÚDATETIMEr3   r
   r4   r   r8   r<   r   rÆ   s     r   Útest_datetimerÌ     s½   € Ü	�‰�sœRŸ\™\¨,Ó7¼¿¹Ð@ÐAÓ	B€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€Cà�8‰8‹:˜Š?Ðˆ?Ø�>‰>˜QÒÐÐØ�9‰9�Q‰<œ9×-Ñ-Ò-Ð-Ð-Ø×Ñ¤×!<Ñ!<¼dÐ CÒCÐCÐCä×Ñ˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   zNumpy > 1.23 required)Úreasonc                  óJ  — t        j                  dt        j                  g d¢«      i«      } | j                  «       j	                  d«      }t        j                  |j                  «       d   d   «      }t        j                  g d¢d¬«      }t        j                  ||«       y )Nr"   )r(   Úbr(   r    r   )r   r$   r   Úint8©r0   )r   r-   r   r.   r/   r   Úfrom_dlpackÚget_buffersrO   r8   Úassert_numpy_array_equal)r=   r>   rT   rU   s       r   Ú test_categorical_to_numpy_dlpackrÕ     sx   € ô 
�‰�sœBŸN™Nª?Ó;Ð<Ó	=€BØ
×
Ñ
Ó
×
/Ñ
/°Ó
4€CÜ�^‰^˜CŸO™OÓ-¨fÑ5°aÑ8Ó9€FÜ�x‰xš	¨Ô0€HÜ×Ñ ¨Õ1r   r(   c                 ó¸   — t        j                  dd«       ddlm} t	        j
                  | «      } ||«      }t        |«      }t        j                  ||«       y )NrB   rC   r   r   )rL   rM   Úpyarrow.interchanger   r   r-   r8   r<   )r    Úpa_from_dataframerU   Úarrow_dfrT   s        r   Útest_empty_pyarrowrÚ     sI   € ô ×Ñ˜	 8Ô,ÝGä�|‰|˜DÓ!€HÙ  Ó*€HÜ˜HÓ%€FÜ×Ñ˜& (Õ+r   Úreturnc                  óB  — t        j                  dd«      } | j                  g d¢g d¢g«      }dg}| j                  |g|¬«      }t        j                  t
        d¬«      5  t        j                  j                  j                  |d	¬
«       d d d «       y # 1 sw Y   y xY w)NrB   rC   )rg   rg   é   )rÝ   r»   rl   Ún_legs)r”   zHTo join chunks a copy is required which is forbidden by allow_copy=FalserÂ   F©Ú
allow_copy)
rL   rM   Úchunked_arrayrN   rÄ   ÚRuntimeErrorr   rY   rZ   r   )rQ   rÞ   r”   rN   s       r   Útest_multi_chunk_pyarrowrã   &  s�   € Ü	×	Ñ	˜Y¨Ó	1€BØ×Ñšyª+Ð6Ó7€FØˆJ€EØ�H‰H�f�X UˆHÓ+€EÜ	�‰Üð(ô
ñ Cô
 	�‰×Ñ×)Ñ)¨%¸EÐ)ÔB÷C÷ Cñ Cús   Á ,BÂBc                  óh  — t        j                  dd«       t        j                  g d¢d¬«      } t        j                  | | gd¬«      j                  d«      }|j                  «       }t        j                  t        d	¬
«      5  t        j                  j                  j                  |j                  d¬«      «       d d d «       t        j                  j                  j                  |j                  d¬«      «      }t        j                  dg d¢id¬«      }t        j                  ||«       t        j                  ||«       t!        |d   j"                  j$                  j&                  «      dk(  sJ ‚t!        |d   j"                  j$                  j&                  «      dk(  sJ ‚y # 1 sw Y   ŒìxY w)NrB   rC   ©r$   rg   NúInt64[pyarrow]rÑ   T)Úignore_indexr(   z:Found multi-chunk pyarrow array, but `allow_copy` is FalserÂ   Frß   )r—   r˜   Nr—   r˜   NrX   rg   )rL   rM   r   r;   ÚconcatÚto_frameÚcopyrÄ   râ   rY   rZ   r   r.   r-   r8   r<   r¦   rO   Ú	_pa_arrayÚchunks)Úserr=   Údf_origrT   rU   s        r   Útest_multi_chunk_columnrï   3  sT  € Ü
×Ñ˜	 8Ô,Ü
�)‰)’LÐ(8Ô
9€CÜ	�‰�C˜�:¨DÔ	1×	:Ñ	:¸3Ó	?€BØ�g‰g‹i€GÜ	�‰ÜÐXô
ñ Nô 	�‰×Ñ×)Ñ)¨"×*:Ñ*:ÀeÐ*:Ó*LÔM÷Nô �V‰V×Ñ×.Ñ.¨r×/?Ñ/?È4Ð/?Ó/PÓQ€Fô �|‰|˜SÒ"BÐCÈ9ÔU€HÜ×Ñ˜& (Ô+ô ×Ñ˜"˜gÔ&Üˆr�#‰w�}‰}×&Ñ&×-Ñ-Ó.°!Ò3Ð3Ð3Üˆw�s‰|×!Ñ!×+Ñ+×2Ñ2Ó3°qÒ8Ð8Ñ8÷Nð Nús   Â:F(Æ(F1c                  ón  — t        j                  dd«       dddddddœ} t        j                  t	        d	i | ¤Žgdd¬«      j                  «       }|j                  «       }t        j                  j                  j                  |«      d   j                  «       }t        j                  d	i | ¤Ž}||k(  sJ ‚y )
NrB   rC   iÐ  r$   )ry   rz   r{   ÚhourÚminuteÚsecondútimestamp[ns][pyarrow]Úcol0)r0   Únamer   )rL   rM   r   r;   r   ré   r.   rY   rZ   r   ÚitemrÉ   )Útimestamp_argsr=   ÚdfirT   rU   s        r   Útest_timestamp_ns_pyarrowrú   H  s²   € ä
×Ñ˜	 8Ô,àØØØØØñ€Nô 
�‰Ü	Ñ	#�NÑ	#Ð$Ø&Øô
÷ �hƒjð	 ð ×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨sÓ3°FÑ;×@Ñ@ÓB€Fä�|‰|Ñ-˜nÑ-€HØ�XÒÐÑr   ÚtzÚUTCz
US/PacificÚunit)r+   ÚmsÚusÚnsc                 óø   — t        j                  ddd¬«      j                  | «      j                  |«      }t        j                  d|i«      }t        j                  |t        |j                  «       «      «       y )Nz
2018-01-01r»   ÚD)ÚperiodsÚfreqÚts_tz)	r   Ú
date_rangeÚtz_localizeÚas_unitr-   r8   r<   r   r.   )rû   rý   Útz_datar=   s       r   Útest_datetimetzdtyper
  `  sc   € ô
 	�‰�l¨A°CÔ8×DÑDÀRÓH×PÑPÐQUÓVð ô 
�‰�w Ð(Ó	)€BÜ×Ñ˜"œn¨R×-=Ñ-=Ó-?Ó@ÕAr   c           	      ó  — t        j                  dd«      }dd lm} t	        «       rFt        «       r<t         j                  j                  |j                  d¬«      }| j                  |«       |j                  t        ddd«      d t        ddd«      g«      }|j                  |d	«      }|j                  d
|i«      }|j                  «       }t        |«      }t!        j"                  g d¢d
gd¬«      }t%        j&                  ||«       y )NrB   rC   r   z_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.)rÄ   rÍ   éä  r$   rg   úAsia/KathmandurR   )z2020-01-01 00:00:00+05:45rÊ   z2020-01-02 00:00:00+05:45zdatetime64[us, Asia/Kathmandu])r¥   r0   )rL   rM   Úpyarrow.computeÚcomputer   r   ÚmarkÚxfailÚArrowInvalidÚapplymarkerrO   r   Úassume_timezonerN   r.   r   r   r-   r8   r<   )	ÚrequestrQ   Úpcr  rR   rN   rS   rT   rU   s	            r   Ú)test_interchange_from_non_pandas_tz_awarer  k  sç   € ä	×	Ñ	˜Y¨Ó	1€BÝ äÔÔ!2Ô!4Ü�{‰{× Ñ Ø—?‘?ð;ð !ó 
ˆð 	×Ñ˜DÔ!à
�(‰(”H˜T 1 aÓ(¨$´¸¸qÀ!Ó0DÐEÓ
F€CØ
×
Ñ
˜SÐ"2Ó
3€CØ�H‰H�e˜S�\Ó"€EØ×%Ñ%Ó'€KÜ˜KÓ(€Fä�|‰|ÚIØ�Ø.ô€Hô
 ×Ñ˜( FÕ+r   c                 óÒ  ‡‡‡— t        j                  dddgi«      j                  «       }|j                  «       Š‰j                  d«      Š‰j	                  «       Š‰d   }|d   }t
        j                  dt        j                  |d   f}|d   |f‰d<   ˆfd	„‰_        ˆfd
„‰_        | j                  |dˆfd„«       t         j                  j                  j                  |«       y )Nr(   ÚfooÚbarr    r$   é   é   r   c                  ó   •— ‰ S r   r   )Úbufferss   €r   rq   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>—  s   ø€  € r   c                 ó   •— ‰S r   r   )r‘   Úcolumns    €r   rq   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>˜  s   ø€ ¨v€ r   r.   c                 ó   •— ‰S r   r   )rà   rZ   s    €r   rq   z?test_interchange_from_corrected_buffer_dtypes.<locals>.<lambda>™  s   ø€ À€ r   )r   r-   r.   r/   rÓ   r   ÚUINTr   ÚUINT8ÚsetattrrY   rZ   r   )Úmonkeypatchr=   Úbuffers_dataÚbuffer_dtyper  r   rZ   s       @@@r   Ú-test_interchange_from_corrected_buffer_dtypesr(  ˆ  sÑ   ú€ ä	�‰�s˜U E˜NÐ+Ó	,×	:Ñ	:Ó	<€BØ×"Ñ"Ó$€KØ×+Ñ+¨CÓ0€FØ× Ñ Ó"€GØ˜6‘?€LØ ‘?€Lä�‰Ø	Ü×ÑØ�Q‰ð	€Lð $ A‘¨Ð5€GˆF�OÛ(€FÔÛ%5€KÔ"Ø×Ñ˜˜OÓ-KÔLÜ‡F�F×Ñ×%Ñ% bÕ)r   c                  óÜ   — t        j                  dg it        ¬«      } | j                  «       }t         j                  j
                  j                  |«      }t        j                  | |«       y )Nr(   rÑ   )	r   r-   Ústrr.   rY   rZ   r   r8   r<   )r=   r’   rT   s      r   Útest_empty_string_columnr+  �  sN   € ä	�‰�s˜B�i¤sÔ	+€BØ
×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨sÓ3€FÜ×Ñ˜"˜fÕ%r   c                  ó0  — t        j                  d«       t        j                  ddgid¬«      } t        j                  j
                  j                  | j                  «       «      }t        j                  ddgid¬«      }t        j                  ||«       y )NrB   r(   rž   úlarge_string[pyarrow]rÑ   Úobject)
rL   rM   r   r-   rY   rZ   r   r.   r8   r<   )r=   rT   rU   s      r   Útest_large_stringr/  ¥  sp   € ä
×Ñ˜	Ô"Ü	�‰�s˜S˜E�lÐ*AÔ	B€BÜ�V‰V×Ñ×.Ñ.¨r×/?Ñ/?Ó/AÓB€FÜ�|‰|˜S 3 %˜L°Ô9€HÜ×Ñ˜& (Õ+r   c                  óž   — t        j                  g d¢d¬«      j                  «       } | j                  «       j	                  «       }|dgk(  sJ ‚y )N©r$   rg   r  r   )rö   Ú0)r   r;   ré   r.   r‰   )r=   r”   s     r   Útest_non_str_namesr3  ®  s@   € ä	�‰’9 1Ô	%×	.Ñ	.Ó	0€BØ×ÑÓ×+Ñ+Ó-€EØ�S�EŠ>Ð‰>r   c                  ó  — t        j                  g d¢g d¢dœ«      } | j                  «       }t        j                  t
        d¬«      5  t         j                  j                  j                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nr1  )rÝ   r»   rº   )r2  r   a   Expected a Series, got a DataFrame. This likely happened because you called __dataframe__ on a DataFrame which, after converting column names to string, resulted in duplicated names: Index\(\['0', '0'\], dtype='object'\). Please rename these columns before using the interchange protocol.rÂ   Frß   )	r   r-   r.   rL   rÄ   Ú	TypeErrorrY   rZ   r   )r=   rù   s     r   Útest_non_str_names_w_duplicatesr6  µ  so   € ä	�‰šIª)Ñ4Ó	5€BØ
×
Ñ
Ó
€CÜ	�‰Üð$ô	
ñ 
Aô 	�‰×Ñ×)Ñ)¨#¸%Ð)Ô@÷
A÷ 
Añ 
Aús   Á,A=Á=B)r    r0   Úexpected_dtyperå   ÚInt64Úint64ræ   ÚInt8rÐ   zInt8[pyarrow]ÚUInt64Úuint64zUInt64[pyarrow])r—   ç      @NÚFloat32Úfloat32zFloat32[pyarrow])TFNÚbooleanÚboolzboolean[pyarrow])úmuch adoÚaboutNzstring[pyarrow_numpy]r^   zstring[pyarrow]r  rô   ztimestamp[ns]ztimestamp[us][pyarrow]ztimestamp[us])Útzinfoz&timestamp[us, Asia/Kathmandu][pyarrow]ú timestamp[us, tz=Asia/Kathmandu]r0   r7  c                 ó˜  — t        j                  dd«      }dd lm} |dk(  r|j	                  dd«      }t        j                  d| i|¬«      }|j                  |j                  «       «      d   }|j                  |k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d	   j                  «       | d	   k(  sJ ‚|d
   j                  «       �J ‚y ©NrB   rC   r   rE  rÿ   r  r(   rÑ   r$   rg   ©rL   rM   r×   rZ   Ú	timestampr   r-   r   r.   ÚtypeÚas_py©r    r0   r7  rQ   Úpair=   rT   s          r   Ú(test_pandas_nullable_with_missing_valuesrN  Æ  sÉ   € ôb 
×	Ñ	˜Y¨Ó	1€BÝ%àÐ;Ò;ØŸ™ dÐ,<Ó=ˆä	�‰�s˜D�k¨Ô	/€BØ×Ñ × 0Ñ 0Ó 2Ó3°CÑ8€FØ�;‰;˜.Ò(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?ÓÐ$Ð$Ñ$r   r1  )r—   r=  g      @)TFF)rB  rC  Únothingr  c                 ó¤  — t        j                  dd«      }dd lm} |dk(  r|j	                  dd«      }t        j                  d| i|¬«      }|j                  |j                  «       «      d   }|j                  |k(  sJ ‚|d   j                  «       | d   k(  sJ ‚|d	   j                  «       | d	   k(  sJ ‚|d
   j                  «       | d
   k(  sJ ‚y rG  rH  rL  s          r   Ú+test_pandas_nullable_without_missing_valuesrQ    sÏ   € ô` 
×	Ñ	˜Y¨Ó	1€BÝ%àÐ;Ò;ØŸ™ dÐ,<Ó=ˆä	�‰�s˜D�k¨Ô	/€BØ×Ñ × 0Ñ 0Ó 2Ó3°CÑ8€FØ�;‰;˜.Ò(Ð(Ð(Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ð'Ø�!‰9�?‰?Ó  Q¡Ò'Ð'Ñ'r   c                  óÌ   — t        j                  dd«       t        j                  ddgid¬«      } | j	                  «       j                  d«      j                  «       d   }|�J ‚y )NrB   rC   r(   rž   r-  rÑ   Úvalidity)rL   rM   r   r-   r.   r/   rÓ   )r=   rT   s     r   Útest_string_validity_bufferrT  C  sZ   € ä
×Ñ˜	 8Ô,Ü	�‰�s˜S˜E�lÐ*AÔ	B€BØ×ÑÓ×2Ñ2°3Ó7×CÑCÓEÀjÑQ€FØˆ>Ð‰>r   c                  ó*  — t        j                  dd«       t        j                  ddd gid¬«      } | j	                  «       j                  d«      j                  «       d   }|€J ‚|d   }t        j                  dt        j                  d	f}||k(  sJ ‚y )
NrB   rC   r(   rž   r-  rÑ   rS  r$   ú=)
rL   rM   r   r-   r.   r/   rÓ   r   ÚBOOLr   )r=   rS  rT   rU   s       r   Ú&test_string_validity_buffer_no_missingrX  K  sŽ   € ä
×Ñ˜	 8Ô,Ü	�‰�s˜S $˜KÐ(Ð0GÔ	H€BØ×ÑÓ!×4Ñ4°SÓ9×EÑEÓGÈ
ÑS€HØÐÐÐØ�a‰[€FÜ—‘ ¤;×#3Ñ#3°SÐ9€HØ�XÒÐÑr   c                  ó
  — t        j                  dg id¬«      } | j                  «       }t         j                  j                  j                  |d¬«      }t        j                  dg id¬«      }t        j                  ||«       y )Nr(   rÐ   rÑ   Frß   )r   r-   r.   rY   rZ   r   r8   r<   )r=   rù   rT   rU   s       r   Útest_empty_dataframerZ  V  sg   € ä	�‰�s˜B�i vÔ	.€BØ
×
Ñ
Ó
€CÜ�V‰V×Ñ×.Ñ.¨s¸uÐ.ÓE€FÜ�|‰|˜S "˜I¨VÔ4€HÜ×Ñ˜& (Õ+r   )rÛ   N)Br   r   Únumpyr   rL   Úpandas._libs.tslibsr   Úpandas.compatr   r   Úpandas.compat.numpyr   Úpandasr   Úpandas._testingÚ_testingr8   Úpandas.core.interchange.columnr	   Ú*pandas.core.interchange.dataframe_protocolr
   r   Ú&pandas.core.interchange.from_dataframer   Úpandas.core.interchange.utilsr   Úfixturer   r   r  Úparametrizer@   rV   r\   ra   Úfloatrj   r•   r¯   rO   rµ   r·   rÀ   rÇ   rÌ   ÚskipifrÕ   rÚ   rã   rï   rú   r
  r  r(  r+  r/  r3  r6  Úutcr   r*  rN  rQ  rT  rX  rZ  r   r   r   ú<module>rk     sÀ  ð÷ó
 Û å $÷õ 2ã Ý Ý 7÷õ BÝ 5ð ‡�ñó ðð ‡�ñ	ó ð	ð ‡�×Ñ˜Ð"3Ð5IÐ!JÓKñBó LðBò&,ò	,òIð ‡�×ÑØ+à	
ˆD�3™˜e› cÐ*Ð+Ø	
ˆD‘5˜“< Ð%Ð&Ø	
ˆD�3�%ÐØ	
ˆA�‘U˜5“\Ð"Ð#Ø	
ˆA�ˆuˆØ	
ˆA‘�e“ˆ~Ððó
ñIó
ðIð ‡�×ÑØ
á<Ù9Ù1Ù>ñ	
ð
óñMóðMò4Dð0 ‡�×ÑØ
âÒ$5Ñ6ÚÒ/Ñ0à�—‘Ò-Ó.Ø�—‘š)Ó$Ø�—‘Ò+Ó,ñ	
ðóñ@óð@ò@òAò$ò	Bð ‡�×ÑÐ%Ð.EÐÓFñ2ó Gð2ð ‡�×Ñ˜ " s¨B i Ó1ñ,ó 2ð,ó
Có9ò*ð0 ‡�×Ñ˜  |Ð4Ó5Ø‡�×Ñ˜Ò!8Ó9ñBó :ó 6ðBò,ó:*ò*&ò,òòAð" ‡�×ÑØ'â	�w Ð(Ú	Ð'¨Ð1Ú	�v˜vÐ&Ú	�¨Ð/âØØð	
ò ØØð	
ò
 
˜I yÐ1Ú	Ð.°	Ð:Ú	˜i¨Ð0Ú	Ð0°&Ð9Ú	$Ð&=¸~ÐNÚ	$Ð&7¸ÐHá�d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¸Ð>Ø$Øð	
ñ ˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9Øðð
 5Ø.ð	
ð?(ó+ðX%Ø
ð%Øð%Ø,/ð%à	ò%óY+ðX%ð& ‡�×ÑØ'â	�G˜WÐ%Ú	Ð$ gÐ.Ú	�F˜FÐ#Ú	�O VÐ,âØØð	
ò ØØð	
ò
 
˜9 iÐ0Ú	Ð-¨yÐ9Ú	˜y¨&Ð1Ú	Ð1°6Ð:Ú	)Ð+BÀNÐSÚ	)Ð+<¸nÐMá�d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ �d˜A˜qÓ!¡8¨D°!°QÓ#7¹À$ÈÈ1Ó9MÐNØ$Øð	
ñ ˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9Ù˜˜q !¨H¯L©LÔ9ðð
 5Ø.ð	
ð?(ó+ðX(Ø
ð(Øð(Ø,/ð(à	ò(óY+ðX(ó$óó,r   