o
    Û­j.Ì ã                   @  s(  d Z ddlmZ ddlmZmZmZmZ ddlmZ ddl	m
Z
mZ ddlZddlZddlZddlZddlZddlmZ ddlmZ dd	lmZmZmZmZmZmZmZmZmZ dd
l m!Z!m"Z" ddl#Z$ddl%m&Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1 ddl2m3Z3 e 4d¡Z5ddl6m7Z7 ddl8m9Z9 dd„ Z:ej;e'j<e=d�dd„ ƒZ>ej;dd„ ƒZ?ej;dd„ ƒZ@ej;ddgd�dd„ ƒZAej;dd„ ƒZBej;dd „ ƒZCej;d!d"„ ƒZDej;d#d$„ ƒZEG d%d&„ d&e3jFƒZGG d'd(„ d(ƒZHejI Jd)e'jK¡d*d+„ ƒZLd,d-„ ZMd.d/„ ZNd0d1„ ZOd2d3„ ZPd4d5„ ZQejI Jd6g d7¢¡ejI Jd8d9d9d9gg¡d:d;„ ƒƒZRejIjJd<g d=¢d>dggg d?¢dgggd@dAgdB�dCdD„ ƒZSdEdF„ ZTejI JdGe5 U¡ eVge5 UdH¡eVge5 W¡ eVge5 X¡ e=ge5 Ye5 Z¡ ¡e[ge5 \e5 Z¡ ¡e[ge5 ]e5 ^¡ e5 Z¡ ¡e[ge5 _dIe5 `¡ fdJe5 ^¡ fg¡eage5 be5 Z¡ e5 Z¡ ¡e"gg	¡dKdL„ ƒZcdMdN„ ZddOdP„ ZedQdR„ ZfdSdT„ ZgdUdV„ ZhdWdX„ ZidYdZ„ Zjd[d\„ Zkd]d^„ Zld_d`„ Zmdadb„ Zndcdd„ ZoejI Jdeej)ejpfdfg¡dgdh„ ƒZqdidj„ Zrdkdl„ Zsdmdn„ Ztdodp„ Zudqdr„ Zvdsdt„ Zwdudv„ Zxdwdx„ Zydydz„ ZzejI Jd{d|d}g¡d~d„ ƒZ{d€d�„ Z|ejI Jd‚dƒd„gd…d†gd‡dˆgg¡d‰dŠ„ ƒZ}d‹dŒ„ Z~ejI Jd�dŽd�dd�d�dggd‘d�dd�d�dggdŽd�d�d�d�d�ggd’d�dd�d�dggd“d�dd�d�dggg¡d”d•„ ƒZd–d—„ Z€ejI Jd˜d™dŽdg dš¢gd™d›d�g dœ¢gd�d›d�g dž¢gd�dŸdg dš¢gd™d dg d¡¢gd�d¢dg d¡¢gd™d£dg d¤¢gd�d£dg d¤¢gg¡d¥d¦„ ƒZ�ejI Jd§d¨¡d©dª„ ƒZ‚ejI Jd«d{e ƒd›¡gd¬e=gd­d�gd®d¯gg¡d°d±„ ƒZ„ejI Jd²d³d´dµd�d¶dggd³d´d¯d�d·dggd¸d´dµd�d¹dggg¡dºd»„ ƒZ…d¼d½„ Z†d¾d¿„ Z‡dÀdÁ„ ZˆejI JdÂdŽd�dd�dggd‘d�dd�dggdŸd�dd�dggdŽd�d�d�d�ggd’d�dd�dggd“d�dd�dggg¡dÃdÄ„ ƒZ‰ejI JdÂd|d�dg dÅ¢gdÆd�dg dÇ¢gdŸd�dg dÇ¢gdŽd�dg dÇ¢gd}d�dg dÅ¢gd“d�dg dÇ¢gdÈd�dg dÅ¢gdÉd�dg dÊ¢gdËd�dg dÇ¢gdÌd�dg dÇ¢gdÍd�dg dÅ¢gdÎd�dg dÅ¢gg¡dÏdÐ„ ƒZŠejI JdÑdŽddddge5 ‹¡ gdŸd¯dÒd¯dge5 Z¡ gg¡dÓdÔ„ ƒZŒdÕdÖ„ Z�d×dØ„ ZŽdÙdÚ„ Z�dÛdÜ„ Z�ejIj‘edÝdÞ�ejI Jdßg dà¢¡ejI Jdág dâ¢¡ejI Jdãg dä¢¡dådæ„ ƒƒƒƒZ’dçdè„ Z“ejI Jdéd¯g dê¢gdµg dë¢gdìg dí¢gdîg dï¢gd>g dð¢gg¡dñdò„ ƒZ”ejIj•dóe–dô�dõdö„ ƒZ—d÷dø„ Z˜ejI JdùddìddŽdggddìd¯dŽdggd¯dÒd¯dŸdggdddµdúdgfg¡dûdü„ ƒZ™ejI Jdýd¯dìd´dþdggddìd´dÿdggddìd�d dggg¡�d�d„ ƒZšejI J�dg �d¢g �d¢g �d¢g �d¢g �d¢g �d	¢g �d
¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g �d¢g¡�d�d„ ƒZ›ejI J�d�d�dg�d�dg�d�dg�d�d g�d!�d"g�d#�d gg¡�d$�d%„ ƒZœ�d&�d'„ Z�ejI J�d(g �d)¢g �d*¢g �d+¢g �d,¢g �d-¢g �d.¢g¡�d/�d0„ ƒZžejI J�d1�d2d|g¡�d3�d4„ ƒZŸejI J�d1�d5d|g¡�d6�d7„ ƒZ ejI J�d8�d9�d:g¡ejI J�d;�d<�d=g�d>�d?gg¡�d@�dA„ ƒƒZ¡ejI Jd®ddìg¡�dB�dC„ ƒZ¢ejI J�dD�dE�dFg¡ejI J�dGddgd¯d>gg¡�dH�dI„ ƒƒZ£ejI J�dJ�dK�dLg¡�dM�dN„ ƒZ¤ejI J�dGddgd¯d>gg¡�dO�dP„ ƒZ¥�dQ�dR„ Z¦�dS�dT„ Z§�dU�dV„ Z¨�dW�dX„ Z©ejI J�dD�dY�dZg¡�d[�d\„ ƒZª�d]�d^„ Z«�d_�d`„ Z¬�da�db„ Z­ejI J�dcd�d�g¡�dd�de„ ƒZ®�df�dg„ Z¯ejI J�dhg �di¢¡�dj�dk„ ƒZ°�dl�dm„ Z±ejI J�dn�do�dpg�dqdìg�drdg�dsdg�dtdg�dudìg�dvdìg�dwdÒg�dxd>g�dyd�g�dz�d{g�d|d¯g�d}�d~g�dd¯g�d€�d�g�d‚e�dpd¯dìƒg�dƒedÒd>�d��d{ƒgg¡�d„�d…„ ƒZ²�d†�d‡„ Z³�dˆ�d‰„ Z´�dŠ�d‹„ ZµejI J�dD�dŒ�d�g¡�dŽ�d�„ ƒZ¶�d��d‘„ Z·ejI J�dh�d’�d“g¡�d”�d•„ ƒZ¸ejI J�d–g �d—¢¡�d˜�d™„ ƒZ¹�dš�d›„ ZºejI J�d�dœ�d�g�dž�dŸgg¡�d �d¡„ ƒZ»�d¢�d£„ Z¼ejI J�dDg �d¤¢¡�d¥�d¦„ ƒZ½ejI J�dDg �d¤¢¡�d§�d¨„ ƒZ¾ejI J�d©g �dª¢¡ejI J�dDg �d¤¢¡�d«�d¬„ ƒƒZ¿�d­�d®„ ZÀejI J�d¯�d°�d±g¡�d²�d³„ ƒZÁ�d´�dµ„ ZÂ�d¶�d·„ ZÃejI J�dh�d’�d“g¡�d¸�d¹„ ƒZÄejI J�dº�d»e�dpdÒ�d¼dÒ�d½�g�d¾e$ Å�d¿¡gg¡�dÀ�dÁ„ ƒZÆ�dÂ�dÃ„ ZÇ�dÄ�dÅ„ ZÈejI J�dh�d’�d“g¡�dÆ�dÇ„ ƒZÉejI Jd�dÈ�dÉg¡�dÊ�dË„ ƒZÊejI J�dn�dÌd¯g�dÍdìg�dÎdÒg�dÏd>gg¡�dÐ�dÑ„ ƒZË�dÒ�dÓ„ ZÌ�dÔ�dÕ„ ZÍ�dÖ�d×„ ZÎejI J�dØd�d�g¡�dÙ�dÚ„ ƒZÏ�dÛ�dÜ„ ZÐ�dÝ�dÞ„ ZÑejI Jd�dß�dàg¡�dá�dâ„ ƒZÒG �dã�dä„ �däe7ƒZÓ�då�dæ„ ZÔ�dç�dè„ ZÕejI J�dé�dê�dëge5 W¡ fd³d›ge5 X¡ fg¡�dì�dí„ ƒZÖ�dî�dï„ Z×ejI Jd)e'jKe'jØ ¡�dð�dñ„ ƒZÙejI Jd)e'jÚ¡�dò�dó„ ƒZÛejI Jd)e'jÜ¡�dô�dõ„ ƒZÝejI Jd)e'jÜe'jÚ ¡�dö�d÷„ ƒZÞ�dø�dù„ Zß�dú�dû„ Zà�dü�dý„ ZáejI Jd)e'jÜe'jÚ ¡�dþ�dÿ„ ƒZâejI Jd)e'jÜe'jÚ ¡�d �d„ ƒZãejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZäejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZåejI Jd)e'jÜe'jÚ ¡�d�d„ ƒZæejI Jd)e'jÜe'jÚ ¡�d�d	„ ƒZç�d
�d„ ZèejIjJd)e'jÜe'jÚ eédB�ejI Jddeêg¡�d�d„ ƒƒZë�d�d„ Zì�d�d„ Zí�d�d„ Zî�d�d„ ZïejI Jd)e'jÚ¡�d�d„ ƒZð�d�d„ Zñ�d�d„ Zò�d�d„ Zó�d�d„ Zô�d �d!„ ZõejI Jd�d"�d#g¡�d$�d%„ ƒZöejI Jd)e'j÷¡�d&�d'„ ƒZøejI Jd)e'j÷¡�d(�d)„ ƒZùejI Jde'jú¡�d*�d+„ ƒZûejI Jdg �d,¢¡�d-�d.„ ƒZüejI Jd)e'jK¡�d/�d0„ ƒZýejI Jd�d"�d#g¡�d1�d2„ ƒZþejI Jd�d"�d#g¡�d3�d4„ ƒZÿ�d5�d6„ �Z ejIj‘e�d7dÞ��d8�d9„ ƒ�Z�d:�d;„ �Z�d<�d=„ �Z�d>�d?„ �Z�d@�dA„ �ZdS (B  ag  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.
The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).
Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.
é    )Úannotations)ÚdateÚdatetimeÚtimeÚ	timedelta)ÚDecimal)ÚBytesIOÚStringION)Úlib)Ú	timezones)	ÚPY311ÚPY312Úis_ci_environmentÚis_platform_windowsÚpa_version_under11p0Úpa_version_under13p0Úpa_version_under14p0Úpa_version_under20p0Úpa_version_under21p0)Ú
ArrowDtypeÚCategoricalDtypeType)Ú
no_default)Úis_bool_dtypeÚis_float_dtypeÚis_integer_dtypeÚis_numeric_dtypeÚis_signed_integer_dtypeÚis_string_dtypeÚis_unsigned_integer_dtype)ÚbaseÚpyarrow)ÚArrowExtensionArray)ÚArrowPeriodTypec                 C  s4   t ƒ rtƒ rtjjtjdd�}|  |¡ d S d S d S )Nz_TODO: Set ARROW_TIMEZONE_DATABASE environment variable on CI to path to the tzdata for pyarrow.©ÚraisesÚreason)r   r   ÚpytestÚmarkÚxfailÚpaÚArrowInvalidÚapplymarker)Úrequestr'   © r-   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/extension/test_arrow.pyÚ_require_timezone_databaseH   s   ýør/   )ÚparamsÚidsc                 C  s   t | jd�S )N)Úpyarrow_dtype)r   Úparam)r,   r-   r-   r.   ÚdtypeT   s   r4   c              	   C  st  | j }tj |¡r!ddgd d g ddgd  d g ddg }�n’tj |¡r?ddgd d g ddgd  d g d	d
g }�nttj |¡r]ddgd d g ddgd  d g ddg }�nVtj |¡r{ddgd d g ddgd  d g ddg }�n8tj |¡r¥tdƒtdƒgd d g tdƒtdƒgd  d g tdƒtdƒg }�ntj 	|¡rÚt
dddƒt
dddƒgd d g t
dddƒt
dddƒgd  d g t
dddƒt
dddƒg }nÙtj |¡�rtdddddddƒtdddddddƒgd d g tddddƒtddddƒgd  d g tdddƒtdddƒg }n™tj |¡�rEtdƒtddƒgd d g tdƒtdƒgd  d g tdƒtdƒg }nntj |¡�rutddƒtddƒgd d g tddƒtddƒgd  d g tddƒtddƒg }n>tj |¡�r“dd gd d g dd!gd  d g d"d#g }n tj |¡�r±d$d%gd d g d&d'gd  d g d(d)g }nt‚tj|| d*�S )+NTFé   é,   ç      ð?ç        g       Àg      ð¿ç      à?g     àX@é   r   éþÿÿÿéÿÿÿÿéc   é   Ú1ú0.0z-2.0z-1.0z0.5z33.123éæ  éÏ  é   é   éä  iöÿÿÿé
   é   ÚaÚbÚ2ú!ú>ó   aó   bó   1ó   2ó   !ó   >©r4   )r2   r)   ÚtypesÚ
is_booleanÚis_floatingÚis_signed_integerÚis_unsigned_integerÚ
is_decimalr   Úis_dater   Úis_timestampr   Úis_durationr   Úis_timer   Ú	is_stringÚ	is_binaryÚNotImplementedErrorÚpdÚarray)r4   Úpa_dtypeÚdatar-   r-   r.   rd   Y   sŒ   0000ÿþýüÿÿþýüÿ*ÿþýüÿÿþýüÿÿþýüÿ..rd   c                 C  s   t | ƒjd| d g| jd�S )zLength-2 array with [NA, Valid]Nr   rS   ©ÚtypeÚ_from_sequencer4   )rd   r-   r-   r.   Údata_missing•   s   rh   )r0   c                 C  s    | j dkr|S | j dkr|S dS )z�Parametrized fixture returning 'data' or 'data_missing' integer arrays.

    Used to test dtype conversion with and without missing values.
    rd   rh   N)r3   )r,   rd   rh   r-   r-   r.   Úall_data›   s
   

ÿri   c              	   C  s¬  | j }tj |¡rd}d}d}n·tj |¡rd}d}d}nªtj |¡r*d}d}d}n�tj |¡r7d}d}d	}n�tj |¡rPtd
ddƒ}tdddƒ}tdddƒ}nwtj 	|¡rnt
d
ddddddƒ}t
dddƒ}t
ddddƒ}nYtj |¡r‚tdƒ}tdƒ}tddƒ}nEtj |¡r˜tddƒ}tddƒ}tddƒ}n/tj |¡r¥d}d}d}n"tj |¡r²d}d}d}ntj |¡rÅtdƒ}tdƒ}tdƒ}nt‚tj||dd||||g| d�S )z˜
    Data for factorization, grouping, and unique tests.

    Expected to be like [B, B, NA, NA, A, A, B, C]

    Where A < B < C and NA is missing
    FTgš™™™™™ñ¿r8   gš™™™™™ñ?r<   r   r:   rF   rB   rC   rD   iÚ  rA   rE   r5   rH   rI   ÚcrM   rN   ó   cz-1.1r@   z1.1NrS   )r2   r)   rT   rU   rV   rW   rX   rZ   r   r[   r   r\   r   r]   r   r^   r_   rY   r   r`   ra   rb   )r4   rc   ÚAÚBÚCr-   r-   r.   Údata_for_grouping§   s^   	


ro   c                 C  ó&   t | ƒj| d | d | d g| jd�S )zn
    Length-3 array with a known sort order.

    This should be three items [B, C, A] with
    A < B < C
    r   é   r5   rS   re   ©ro   r-   r-   r.   Údata_for_sortingâ   ó   þrs   c                 C  rp   )z{
    Length-3 array with a known sort order.

    This should be three items [B, NA, A] with
    A < B and NA missing.
    r   r>   r5   rS   re   rr   r-   r-   r.   Údata_missing_for_sortingð   rt   ru   c                 C  sR   | j j}tj |¡stj |¡stj |¡stj |¡r'tj	dgd | j d�S | S )z3Length-100 array in which all the elements are two.r>   éd   rS   )
r4   r2   r)   rT   Ú
is_integerrV   rY   r\   ra   rb   ©rd   rc   r-   r-   r.   Údata_for_twosþ   s   
ÿ
þ
ý
üry   c                      s”  e Zd Zdd„ Zej dddg¡dd„ ƒZ‡ fdd	„Z‡ fd
d„Z	dd„ Z
dd„ Zdd„ Zdd„ Zdpdd„Zej dddg¡‡ fdd „ƒZdpd!d"„Zdqd#d$„Zej dddg¡‡ fd%d&„ƒZej dddg¡‡ fd'd(„ƒZdrd)d*„Zej dddg¡‡ fd+d,„ƒZej d-g d.¢¡d/d0„ ƒZ‡ fd1d2„Z‡ fd3d4„Zd5d6„ Z‡ fd7d8„Z‡ fd9d:„Zejjd;dd<�‡ fd=d>„ƒZd?d@„ ZejjdAdd<�‡ fdBdC„ƒZejjdAdd<�‡ fdDdE„ƒZ ej dFdGe!g¡ej dHdIdJg¡dKdL„ ƒƒZ"‡ fdMdN„Z#ej dOdPdQg¡‡ fdRdS„ƒZ$dTdU„ Z%dVZ&dWdX„ Z'dsdYdZ„Z(d[d\„ Z)dtd^d_„Z*d`da„ Z+‡ fdbdc„Z,‡ fddde„Z-dfdg„ Z.‡ fdhdi„Z/djdk„ Z0ej dlg dm¢¡dndo„ ƒZ1‡  Z2S )uÚTestArrowArrayc                 C  s"   t  |¡}|  ||||d ¡ d S )Nr   )ra   ÚSeriesÚ_compare_other)Úselfrd   Úcomparison_opÚserr-   r-   r.   Útest_compare_scalar  s   
z"TestArrowArray.test_compare_scalarÚ	na_actionNÚignorec                 C  s€   |j jdv r|jdd„ |d�}|jtd�}t ||¡ d S |jdd„ |d�}|j dkr4|jdtjd	�}n| ¡ }t ||¡ d S )
NÚmMc                 S  ó   | S ©Nr-   ©Úxr-   r-   r.   Ú<lambda>  ó    z)TestArrowArray.test_map.<locals>.<lambda>©r�   rS   c                 S  r„   r…   r-   r†   r-   r-   r.   rˆ     r‰   úfloat32[pyarrow]Úfloat64©r4   Úna_value)	r4   ÚkindÚmapÚto_numpyÚobjectÚtmÚassert_numpy_array_equalÚnpÚnan)r}   rh   r�   ÚresultÚexpectedr-   r-   r.   Útest_map  s   
zTestArrowArray.test_mapc                   s|   |j j}tj |¡r| tjjd|› d�d�¡ n|s6tj 	|¡r&|j
d u s,tj |¡r6| tjjdd�¡ tƒ  |¡ d S )NzFor z .astype(str) decodes.©r%   z8pd.Timestamp/pd.Timedelta repr different from numpy repr)r4   r2   r)   rT   r_   r+   r&   r'   r(   r[   Útzr\   ÚsuperÚtest_astype_str)r}   rd   r,   Úusing_infer_stringrc   ©Ú	__class__r-   r.   r�   "  s&   
ÿÿ
ÿ

ÿÿÿzTestArrowArray.test_astype_strc                   s`   |j j}tj |¡stj |¡r(tj |¡rd}nd|› �}| tjj	|d�¡ t
ƒ  |¡ d S )Nz1ArrowDtype(pa.string()) != StringDtype('pyarrow')ú$pyarrow.type_for_alias cannot infer rš   )r4   r2   r)   rT   r^   rY   r+   r&   r'   r(   rœ   Útest_from_dtype)r}   rd   r,   rc   r%   rŸ   r-   r.   r¢   5  s   
ÿÿzTestArrowArray.test_from_dtypec                 C  sp   t |ƒj|j|jd�}t ||¡ t|jtjƒsJ ‚t |ƒj|j 	¡ |jd�}t ||¡ t|jtjƒs6J ‚d S ©NrS   )
rf   rg   Ú	_pa_arrayr4   r“   Úassert_extension_array_equalÚ
isinstancer)   ÚChunkedArrayÚcombine_chunks©r}   rd   r—   r-   r-   r.   Útest_from_sequence_pa_arrayD  s   ÿz*TestArrowArray.test_from_sequence_pa_arrayc                 C  sH   t jtdd�� tjdgt ¡ d� W d   ƒ d S 1 sw   Y  d S )NzConverting strings to©Úmatchz12-1rS   )r&   r$   r`   r!   Ú_from_sequence_of_stringsr)   Úmonth_day_nano_interval)r}   r,   r-   r-   r.   Ú*test_from_sequence_pa_array_notimplementedQ  s
   
ÿ"ÿz9TestArrowArray.test_from_sequence_pa_array_notimplementedc                 C  sî   |j j}tj |¡r| d¡rts| tj	j
dd�¡ n-tr:tj |¡s*tj |¡r:| tj	j
tjd|› �d�¡ ntj |¡rI|jd urIt|ƒ |j t ¡ ¡}t|ƒj||j d�}t ||¡ | ¡ }t|ƒj||j d�}t ||¡ d S )Nz
time64[ns]z&Nanosecond time parsing not supported.rš   z pyarrow doesn't support parsing r#   rS   )r4   r2   r)   rT   Ú	is_time64Úequalsr   r+   r&   r'   r(   r   r\   rY   ÚArrowNotImplementedErrorr[   r›   r/   r¤   ÚcastÚstringrf   r­   r“   r¥   r¨   )r}   rd   r,   rc   Úpa_arrayr—   r-   r-   r.   Ú&test_from_sequence_of_strings_pa_arrayW  s4   ÿÿ
ÿ
ÿþÿz5TestArrowArray.test_from_sequence_of_strings_pa_arrayc                 C  s€   t ||ƒ|d�}|jj}tj |¡r&|jdkrd}nd}| |¡}| |¡}| d¡}t | d¡|ƒ|d�}tj	||dd� d S )N©Úskipnaé    úint32[pyarrow]úint64[pyarrow]ÚFloat64F)Úcheck_dtype)
Úgetattrr4   r2   r)   rT   Úis_temporalÚ	bit_widthÚastyper“   Úassert_series_equal)r}   r   Úop_namer¸   r—   Úpa_typeÚint_typer˜   r-   r-   r.   Úcheck_accumulates  s   



zTestArrowArray.check_accumulater   ú	pd.SeriesrÃ   ÚstrÚreturnÚboolc                 C  sœ   |j j}tj |¡stj |¡r|dv rdS dS tj |¡r&|dkr$dS dS tj |¡r4|dv r2dS dS tj |¡rL|dkrFtj 	|¡sFdS |dkrLdS dS )N)ÚcumsumÚcumprodÚcummaxÚcumminFrÌ   )rÌ   rÍ   rÎ   rË   T)
r4   r2   r)   rT   r_   rY   r^   rU   r¿   r\   )r}   r   rÃ   rÄ   r-   r-   r.   Ú_supports_accumulation„  s&   õ	øûz%TestArrowArray._supports_accumulationr¸   TFc           
        sð   |j j}|}tj |¡r|dv rd S t |¡}|  ||¡s%tƒ  	|||¡S t
rO|dkrO|jj}|jr?d|jv r?t |› d�¡ tjj|› d�d�}	| |	¡ n |dkrotj |¡s_tj |¡ro| tjj|› d|› �td�¡ |  |||¡ d S )N)rË   rÎ   rÍ   rË   znot slowz  not implemented for pyarrow < 9rš   z not implemented for ©r%   r$   )r4   r2   r)   rT   r^   ra   r{   rÏ   rœ   Útest_accumulate_seriesr   ÚconfigÚoptionÚmarkexprr&   Úskipr'   r(   r+   rU   rY   Ú	TypeErrorrÆ   )
r}   rd   Úall_numeric_accumulationsr¸   r,   rÄ   rÃ   r   Úoptr'   rŸ   r-   r.   rÑ   ™  s>   
ÿÿÿ
ÿ
ÿþÿz%TestArrowArray.test_accumulate_seriesc                 C  s¶   |dks
t r|dkrdS |j}|j}tj |¡r)|dv r)tj |¡r'|dv r'n dS tj |¡r5|dv r5dS tj |¡sAtj |¡rG|dv rGdS tj |¡rYtj |¡sY|dv rYdS d	S )
NÚkurtÚskewF)ÚsumÚvarrÚ   rÙ   Úprod)rÛ   )rÛ   rÚ   )ÚmeanÚmedianrÝ   ÚstdÚsemrÜ   rÚ   rÙ   )ÚanyÚallT)	r   r4   r2   r)   rT   r¿   r\   r_   r^   )r}   r   rÃ   r4   rc   r-   r-   r.   Ú_supports_reductionÄ  s.   
ÿ
ÿ

ÿ
þz"TestArrowArray._supports_reductionc                 C  s‚   |j j}tj |¡stj |¡r| d¡}n|}|dkr)t||ƒƒ }t||ƒƒ }nt||ƒ|d�}t||ƒ|d�}t 	||¡ d S )Nr¼   Úcountr·   )
r4   r2   r)   rT   rw   rV   rÁ   r¾   r“   Úassert_almost_equal)r}   r   rÃ   r¸   rc   Úaltr—   r˜   r-   r-   r.   Úcheck_reduceô  s   zTestArrowArray.check_reducec                   sª   |j }|j}tjjt|› dtj› d|› �d�}tj 	|¡r'|dv r'| 
|¡ n$tsK|dkrKtj 	|¡sA|rKtj |¡sAtj |¡rK| 
tjjdd�¡ tƒ  |||¡ d S )Nú is not implemented in pyarrow=ú for r#   >   rá   rà   rÜ   rß   rÚ   z,https://github.com/apache/arrow/issues/45733rš   )r4   r2   r&   r'   r(   rÖ   r)   Ú__version__rT   rU   r+   r   rw   rV   rœ   Útest_reduce_series_numeric)r}   rd   Úall_numeric_reductionsr¸   r,   r4   rc   Ú
xfail_markrŸ   r-   r.   rì   	  s:   ÿÿýÿ
þü
ú
úÿÿz)TestArrowArray.test_reduce_series_numericc                   s\   |j j}tjjt|› dtj› d|› �d�}tj 	|¡s!tj 
|¡r&| |¡ tƒ  |||¡S )Nré   rê   r#   )r4   r2   r&   r'   r(   rÖ   r)   rë   rT   r^   r_   r+   rœ   Útest_reduce_series_boolean)r}   rd   Úall_boolean_reductionsr¸   rŽ   r,   rc   rî   rŸ   r-   r.   rï   0  s   ÿÿý
z)TestArrowArray.test_reduce_series_booleanc                 C  s¦   |j j}|dv r|j}|S |jjdkr0|dkr#ts#tt dd¡ƒ}|S |dvr,|j}|S d}|S |dv r8d}|S |dkrGtj 	|¡rG|j}|S d	d
ddœ|jj
 }|S )N)ÚmaxÚminzdecimal128(7, 3)[pyarrow]rÛ   é&   é   )rß   rÜ   rà   rÚ   úfloat64[pyarrow])rß   rÜ   rà   rÞ   rÚ   r»   úuint64[pyarrow])ÚiÚuÚf)r¤   rf   r4   Únamer   r   r)   Ú
decimal128rT   r^   r�   )r}   ÚarrrÃ   r¸   rÄ   Ú	cmp_dtyper-   r-   r.   Ú_get_expected_reduction_dtypeC  s4   îòõö	øüýüz,TestArrowArray._get_expected_reduction_dtypec                   s@   |}|dkrt r|jjrtjjdd�}| |¡ tƒ  |||¡S )NrÚ   zskew not implementedrš   )	r   r4   Ú_is_numericr&   r'   r(   r+   rœ   Útest_reduce_frame)r}   rd   rí   r¸   r,   rÃ   r'   rŸ   r-   r.   r   [  s   
z TestArrowArray.test_reduce_frameÚtyp)Úint64Úuint64rŒ   c                 C  s,   t jddg|› d�d� ¡ }|dksJ ‚d S )Nr:   r>   ú	[pyarrow]rS   ç      ø?)ra   r{   rß   )r}   r  r—   r-   r-   r.   Útest_median_not_approximated  s   z*TestArrowArray.test_median_not_approximatec                   sŽ   |j }tj |¡r| tjjtd|› �d�¡ tj 	|¡r?d}tj
t|d�� | |j¡ W d   ƒ d S 1 s8w   Y  d S tƒ  |¡ d S )Nr¡   r#   z6string\[pyarrow\] should be constructed by StringDtyper«   )r2   r)   rT   rY   r+   r&   r'   r(   r`   r^   r$   rÖ   Úconstruct_from_stringrú   rœ   Ú#test_construct_from_string_own_name)r}   r4   r,   rc   ÚmsgrŸ   r-   r.   r  j  s"   þÿ
ÿýz2TestArrowArray.test_construct_from_string_own_namec                   sb   |j }tj |¡rt|ƒ |j¡rJ ‚d S tj |¡r)| t	j
jtd|› �d�¡ tƒ  |¡ d S )Nr¡   r#   )r2   r)   rT   r^   rf   Úis_dtyperú   rY   r+   r&   r'   r(   r`   rœ   Útest_is_dtype_from_name©r}   r4   r,   rc   rŸ   r-   r.   r  ~  s   þÿz&TestArrowArray.test_is_dtype_from_namec                 C  sF   d}t jt|d�� t|ƒ d¡ W d   ƒ d S 1 sw   Y  d S )Nz*'another_type' must end with '\[pyarrow\]'r«   Úanother_type)r&   r$   rÖ   rf   r  )r}   r4   r	  r-   r-   r.   Ú.test_construct_from_string_another_type_raises�  s   "ÿz=TestArrowArray.test_construct_from_string_another_type_raisesc                   sv   |j }tj |¡s&tj |¡s&tj |¡r|jd us&tj |¡s&tj |¡r3| 	t
jj|› d�d�¡ tƒ  |¡ d S )NzB does not have associated numpy dtype findable by find_common_typerš   )r2   r)   rT   rZ   r]   r[   r›   r_   rY   r+   r&   r'   r(   rœ   Útest_get_common_dtyper  rŸ   r-   r.   r  ’  s$   
ÿ
þ
ý

ÿ
þþÿz$TestArrowArray.test_get_common_dtypec                   s2   |j }tj |¡rt|ƒsJ ‚d S tƒ  |¡ d S r…   )r2   r)   rT   r^   r   rœ   Útest_is_not_string_type)r}   r4   rc   rŸ   r-   r.   r  ¥  s   z&TestArrowArray.test_is_not_string_typez6GH 45419: pyarrow.ChunkedArray does not support views.)r%   Úrunc                   ó   t ƒ  |¡ d S r…   )rœ   Ú	test_view©r}   rd   rŸ   r-   r.   r  ¬  ó   zTestArrowArray.test_viewc                 C  s`   ||  ¡   }|d }| |¡}||usJ ‚t ||¡ |jdd�}||us(J ‚t ||¡ d S )Nr   Úbackfill)Úmethod)ÚisnaÚfillnar“   r¥   )r}   rd   Úvalidr—   r-   r-   r.   Útest_fillna_no_op_returns_copy²  s   
z-TestArrowArray.test_fillna_no_op_returns_copyz5GH 45419: pyarrow.ChunkedArray does not support viewsc                   r  r…   )rœ   Útest_transposer  rŸ   r-   r.   r  ¾  r  zTestArrowArray.test_transposec                   r  r…   )rœ   Útest_setitem_preserves_viewsr  rŸ   r-   r.   r  Ä  r  z+TestArrowArray.test_setitem_preserves_viewsÚdtype_backendr    Úenginerj   Úpythonc           
      C  sþ   |j j}tj |¡r| tjjt	d|› d�d�¡ n'tj 
|¡r1|jdv r1| tjjtdd�¡ ntj |¡rA| tjjdd�¡ t dtj|t|j ƒd	�i¡}|jd
tjd�}tj |¡rct|ƒ}nt|ƒ}tj|dt|j ƒi||d�}|}	t ||	¡ d S )NzParameterized types z not supported.r#   )ÚusÚnsz1https://github.com/pandas-dev/pandas/issues/49767z)CSV parsers don't correctly handle binaryrš   Ú
with_dtyperS   F)ÚindexÚna_rep)r4   r  r  )r4   r2   r)   rT   rY   r+   r&   r'   r(   r`   r[   ÚunitÚ
ValueErrorr_   ra   Ú	DataFramer{   rÈ   Úto_csvr•   r–   r   r	   Úread_csvr“   Úassert_frame_equal)
r}   r  rd   r  r,   rc   ÚdfÚ
csv_outputr—   r˜   r-   r-   r.   Útest_EA_typesÊ  s@   
þÿþÿÿ
üzTestArrowArray.test_EA_typesc                   s¬   |j j}tj |¡s%tj |¡s%tj |¡s%| tj	j
tjd|› �d�¡ trNtj |¡rNtjtddd�� tƒ  |¡ W d   ƒ d S 1 sGw   Y  d S tƒ  |¡ d S )Nz$pyarrow.compute.invert does support r#   zBitwise inversionF)r¬   Úcheck_stacklevel)r4   r2   r)   rT   rU   rw   r^   r+   r&   r'   r(   r²   r   r“   Úassert_produces_warningÚDeprecationWarningrœ   Útest_invert©r}   rd   r,   rc   rŸ   r-   r.   r2  ï  s(   
ÿ
þ
ýþÿÿ"ýzTestArrowArray.test_invertÚperiodsr:   r;   c              	     sT   |j j}tj |¡r!|dkr!| tjjtj	d|› d|› d�d�¡ t
ƒ  ||¡ d S )Nr:   z
diff with z and periods=z will overflowr#   )r4   r2   r)   rT   rX   r+   r&   r'   r(   r*   rœ   Ú	test_diff)r}   rd   r4  r,   rc   rŸ   r-   r.   r5    s   ýÿzTestArrowArray.test_diffc                 C  s.   |d d… }|  ¡ }|jtt ¡ ƒksJ ‚d S )NrF   )Úvalue_countsr4   r   r)   r  r©   r-   r-   r.   Ú'test_value_counts_returns_pyarrow_int64  s   z6TestArrowArray.test_value_counts_returns_pyarrow_int64zbool[pyarrow]c                 C  s8   |  d¡}|dkrdd„ }|S |dkrdd„ S t |¡S )NÚ_Úrtruedivc                 S  ó   t  || ¡S r…   )r•   Údivide©r‡   Úyr-   r-   r.   r9    s   z1TestArrowArray.get_op_from_name.<locals>.rtruedivÚ	rfloordivc                 S  r:  r…   )r•   Úfloor_divider<  r-   r-   r.   rˆ   $  s    z1TestArrowArray.get_op_from_name.<locals>.<lambda>)Ústripr“   Úget_op_from_name)r}   rÃ   Úshort_opnamer9  r-   r-   r.   rA    s   

zTestArrowArray.get_op_from_namec                 C  s|  |}|dv r|  d¡S d}t|tjƒr)d}|jd d …df }|jd d …df j}n|}|j}|j}	|sdt|tjƒrdtj	 
|	¡sctj	 |	¡rI|dvsctj	 |	¡sctj	 |	¡sctj	 |	¡sctj	 |	¡sc|S n$|dkrntj	 |	¡sˆtj	 |	¡sˆtj	 |	¡sˆtj	 |	¡sˆtj	 |	¡sˆ|S t |j¡}
tj	 |
j¡rÂtj	 |	¡r§tj	 |	¡r¤d}nd	}n|	j}t|ƒttfv r¸|d
v r¸d}|
 d|› d�¡}
n_tj	 |
j¡�rtj	 |	¡�rt||ƒ|ƒ}t |¡}t|tƒsäJ ‚|dkrôt|tƒrôtt ¡ ƒ}n#|dk�rt|tjƒ�r|j|k�rtt ¡ ƒ}n
tj	 |j¡�sJ ‚|  |¡S |
 |	¡}
t|jƒ|
ƒ}|�r7tj||j|jd�}|S t |¡}|S )N)ÚeqÚneÚltÚleÚgtÚgeúboolean[pyarrow]FTr   )Ú__truediv__Ú__rtruediv__Ú__floordiv__ÚmsÚs)rN  rM  r!  z	duration[ú]Ú__pow__)r$  Úcolumns) rÁ   r¦   ra   r(  Úilocr4   r2   r{   r)   rT   rV   rw   r\   r[   rZ   rY   rb   Ú_valuesrf   Ú	is_date64r&  r   r   r³   r¾   r“   Ú	get_dtyper   r   rŒ   r$  rQ  )r}   rÃ   ÚobjÚotherÚpointwise_resultr˜   Ú	was_frameÚexpected_dataÚoriginal_dtypeÚorig_pa_typeÚpa_expectedr&  rç   Ú	alt_dtypeÚpd_expectedr-   r-   r.   Ú_cast_pointwise_result(  sŽ   

ÿ
ý
þ
ý
ü
û	€
ÿ
þ
ý
üÿ


ÿ


ÿ
ÿz%TestArrowArray._cast_pointwise_resultc                 C  s6   |dv p
|dv o
t  rtj |¡p|dv otj |¡S )N©Ú__add__Ú__radd__©rJ  rK  rL  Ú__rfloordiv__©Ú__sub__Ú__rsub__)r   r)   rT   r\   r¿   )r}   Úopnamerc   r-   r-   r.   Ú_is_temporal_supportedŽ  s   ÿû
ø	
õz%TestArrowArray._is_temporal_supportedú4type[Exception] | tuple[type[Exception], ...] | Nonec                 C  s¨   |dv rt tfS t |¡}|j}|  ||¡}|dv r t tf}|S |r&d }|S |dv r:tj |¡s6tj 	|¡r:d }|S tj 
|¡sPtj |¡sPtj |¡sPt}|S d }|S )N)Ú
__divmod__Ú__rdivmod__>   Ú__mod__Ú__rmod__ra  )r`   rÖ   r“   rU  r2   rj  r)   rT   r^   r_   rV   rw   rY   )r}   rÃ   rV  rW  r4   rc   Úarrow_temporal_supportedÚexcr-   r-   r.   Ú_get_expected_exception�  s8   
òô
ÿ
ÿ	
ùÿ
þ
ýÿz&TestArrowArray._get_expected_exceptionc                 C  sø   d }|   ||¡}|dkr*tj |¡stj |¡stj |¡r*tjjd|› �d�}|S |rLtj 	|¡s<|dv rLtj 
|¡rLtjjt|› d|› d�d�}|S |dkrgtj |¡s\tj |¡rgtjjtjd	d�}|S |d
krztj |¡rztjjtjd	d�}|S )NÚ__rpow__z<GH#29997: 1**pandas.NA == 1 while 1**pyarrow.NA == NULL for rš   rd  z  not supported betweenpd.NA and z Python scalarr#   re  zdivide by 0rK  )rj  r)   rT   rV   rw   rY   r&   r'   r(   r]   r\   rÖ   r*   )r}   ri  rc   r'   rp  r-   r-   r.   Ú_get_arith_xfail_marker¿  s\   
ÿ
þ
ýÿþ"ä
ÿÿ
þÿýó
ÿ
ÿþ
úþz&TestArrowArray._get_arith_xfail_markerc                   sV   |j j}|dkrtj |¡rt d¡ |  ||¡}|d ur"| |¡ t	ƒ  
||¡ d S ©Nro  z%Skip testing Python string formatting)r4   r2   r)   rT   r_   r&   rÕ   rt  r+   rœ   Útest_arith_series_with_scalar©r}   rd   Úall_arithmetic_operatorsr,   rc   r'   rŸ   r-   r.   rv  í  s   

z,TestArrowArray.test_arith_series_with_scalarc                   sb   |j j}|dkrtj |¡stj |¡rt d¡ |  ||¡}|d ur(| 	|¡ t
ƒ  ||¡ d S ru  )r4   r2   r)   rT   r^   r_   r&   rÕ   rt  r+   rœ   Útest_arith_frame_with_scalarrw  rŸ   r-   r.   ry  ù  s   
ÿ
ÿ

z+TestArrowArray.test_arith_frame_with_scalarc           	      C  sž   |j j}|dv rtj |¡r| tjjtj	d|› �d�¡ |  
||¡}|d ur,| |¡ |}t |¡}t tj|jd gt|ƒ |j d�¡}|  |||¡ d S )Nrf  zJImplemented pyarrow.compute.subtract_checked which raises on overflow for r#   r   rS   )r4   r2   r)   rT   rX   r+   r&   r'   r(   r*   rt  ra   r{   rb   rR  ÚlenÚcheck_opname)	r}   rd   rx  r,   rc   r'   rÃ   r   rW  r-   r-   r.   Útest_arith_series_with_array  s&   
ýÿýÿ


&z+TestArrowArray.test_arith_series_with_arrayc                   s@   |j j}| d¡r| tjjtjd|› �d�¡ t	ƒ  
|¡ d S )NÚint8zraises on overflow for r#   )r4   r2   r±   r+   r&   r'   r(   r)   r*   rœ   Ú$test_add_series_with_extension_arrayr3  rŸ   r-   r.   r~  $  s   
þÿz3TestArrowArray.test_add_series_with_extension_arrayc                 C  s@   t jtdd�� ||tƒ ƒ W d   ƒ d S 1 sw   Y  d S )Nz'.* not implemented for <class 'object'>r«   )r&   r$   r`   r’   )r}   rd   r~   r-   r-   r.   Útest_invalid_other_comp0  s
   ÿ"ýz&TestArrowArray.test_invalid_other_compÚmasked_dtype)ÚbooleanÚInt64r¼   c           	      C  s„   g d¢}t j||d�}t j|| ¡ › d�d�}|||ƒ}|tjtjtjfv r+g d¢}ng d¢}t j|tt 	¡ ƒd�}t
 ||¡ d S )N)r:   r   NrS   r  )FFN)TTN)ra   r{   ÚlowerÚoperatorrE  rG  rD  r   r)   Úbool_r“   rÂ   )	r}   r€  r~   rd   Ú
ser_maskedÚser_par—   Úexpr˜   r-   r-   r.   Útest_comp_masked_numpy7  s   

z%TestArrowArray.test_comp_masked_numpy)r   rÇ   rÃ   rÈ   rÉ   rÊ   )r   rÇ   rÃ   rÈ   r¸   rÊ   )rÃ   rÈ   r¸   rÊ   )rÃ   rÈ   )rÃ   rÈ   rÉ   rk  )3Ú__name__Ú
__module__Ú__qualname__r€   r&   r'   Úparametrizer™   r�   r¢   rª   r¯   r¶   rÆ   rÏ   rÑ   rä   rè   rì   rï   rþ   r   r  r  r  r  r  r  r(   r  r  r  r  r   r.  r2  r5  r7  Ú_combine_le_expected_dtyperA  r`  rj  rr  rt  rv  ry  r|  r~  r  r‰  Ú__classcell__r-   r-   rŸ   r.   rz     s|    


*
0&

ÿÿÿ#
f
".rz   c                   @  sf  e Zd ZdZdd„ Zej ddg d¢fej	g d¢fdg d¢fe
 d¡g d¢fd	g d
¢fe
 d	¡g d
¢fg¡dd„ ƒZdd„ Zej ddg d¢fej	g d¢fdg d
¢fd	g d¢fe
 d¡g d
¢fe
 d	¡g d¢fg¡dd„ ƒZdd„ Zej ddg d¢fej	g d¢fdg d¢fe
 d¡g d¢fe
 d	¡g d
¢fg¡dd„ ƒZej dddgddgdd	gg¡dd„ ƒZdS )ÚTestLogicalOpsz1Various Series and DataFrame logical ops methods.c                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||B }t jg d¢dd�}t ||¡ ||B }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrô   FrI  rS   ©TFN)	TTTTFNTNN©ra   r{   r“   rÂ   ©r}   rH   rI   r—   r˜   r-   r-   r.   Útest_kleene_orI  ó"   (þ&þÿzTestLogicalOps.test_kleene_orzother, expectedN)TNNT)TTTFr‘  c                 C  sf   t jg d¢dd�}||B }t j|dd�}t ||¡ ||B }t ||¡ t |t jg d¢dd�¡ d S ©Nr‘  rI  rS   r’  ©r}   rW  r˜   rH   r—   r-   r-   r.   Útest_kleene_or_scalar_  ó   ÿz$TestLogicalOps.test_kleene_or_scalarc                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||@ }t jg d¢dd�}t ||¡ ||@ }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrô   FrI  rS   r‘  )	TFNFFFNFNr’  r“  r-   r-   r.   Útest_kleene_andx  r•  zTestLogicalOps.test_kleene_and)NFN©FFFc                 C  sf   t jg d¢dd�}||@ }t j|dd�}t ||¡ ||@ }t ||¡ t |t jg d¢dd�¡ d S r–  r’  r—  r-   r-   r.   Útest_kleene_and_scalarŽ  r™  z%TestLogicalOps.test_kleene_and_scalarc                 C  sÊ   t jdgd dgd  d gd  dd�}t jg d¢d dd�}||A }t jg d¢dd�}t ||¡ ||A }t ||¡ t |t jdgd dgd  d gd  dd�¡ t |t jg d¢d dd�¡ d S )NTrô   FrI  rS   r‘  )	FTNTFNNNNr’  r“  r-   r-   r.   Útest_kleene_xor§  r•  zTestLogicalOps.test_kleene_xor©NNN)FTNc                 C  sf   t jg d¢dd�}||A }t j|dd�}t ||¡ ||A }t ||¡ t |t jg d¢dd�¡ d S r–  r’  r—  r-   r-   r.   Útest_kleene_xor_scalar½  s   ÿz%TestLogicalOps.test_kleene_xor_scalarzop, expÚ__and__Ú__or__Ú__xor__c                 C  s^   g d¢}t j|dd�}t j|dd�}t||ƒ|ƒ}t j|dd gtt ¡ ƒd�}t ||¡ d S )Nr‘  r�  rS   rI  F)ra   r{   r¾   r   r)   r…  r“   rÂ   )r}   Úoprˆ  rd   r†  r‡  r—   r˜   r-   r-   r.   Útest_logical_masked_numpyÕ  s   
z(TestLogicalOps.test_logical_masked_numpy)rŠ  r‹  rŒ  Ú__doc__r”  r&   r'   r�  ra   ÚNAr•   r…  r˜  rš  rœ  r�  rŸ  r¤  r-   r-   r-   r.   r�  F  sZ    


úþ



úþ


ûþ

ýþr�  rÄ   c                 C  sÜ   t | ƒ}tjg d¢|d�}tjg d¢|d�}||B }tjg d¢|d�}t ||¡ ||@ }tjg d¢|d�}t ||¡ ||A }tjg d¢|d�}t ||¡ | }| d¡ ¡  }tj||d� | ¡ ¡}t ||¡ d S )N)r:   Nrô   r5   rS   )Nrô   rG   r5   )NNrq   r5   )NNr:   r5   )NNé   r   r   )	r   ra   r{   r“   rÂ   r  r‘   ÚmaskÚisnull)rÄ   r4   ÚleftÚrightr—   r˜   r-   r-   r.   Útest_bitwiseç  s    r¬  c                   C  sv   t jtdd�� t d¡ W d   ƒ n1 sw   Y  t jtdd�� t d¡ W d   ƒ d S 1 s4w   Y  d S )NzPassing pyarrow typer«   z#not_a_real_dype[s, tz=UTC][pyarrow]zdecimal(7, 2)[pyarrow])r&   r$   r`   r   r  r-   r-   r-   r.   ÚFtest_arrowdtype_construct_from_string_type_with_unsupported_parameters   s   ÿ"ÿr­  c                  C  s*   t  d¡} t t dd¡ƒ}| |ksJ ‚d S )Nztimestamp[s, tz=UTC][pyarrow]rN  ÚUTC)r   r  r)   Ú	timestamp)r4   r˜   r-   r-   r.   Ú5test_arrowdtype_construct_from_string_supports_dt64tz  s   
r°  c                  C  sN   d} d}t jt|d�� tjtdƒ| d� W d   ƒ d S 1 s w   Y  d S )Nzint64[pyarrow]foobar[pyarrow]zYPassing pyarrow type specific parameters \(\[pyarrow\]\) in the string is not supported\.r«   rô   rS   )r&   r$   r`   ra   r{   Úrange)Úinvalidr	  r-   r-   r.   Ú;test_arrowdtype_construct_from_string_type_only_one_pyarrow  s   ÿ"ÿr³  c                  C  sr   t jddgtt ¡ ƒd�} t jddgdd�}| | }t jddgtt ¡ ƒd�}t ||¡ ||  }t ||¡ d S )	NÚabcÚdefgrS   r>   r;   r»   ÚabcabcÚ ©ra   r{   r   r)   r´   r“   rÂ   )ÚbinaryÚrepeatr—   r˜   Úreflected_resultr-   r-   r.   Ú test_arrow_string_multiplication  s   r¼  c                  C  s`   t jddgtt ¡ ƒd�} | d }t jddgtt ¡ ƒd�}t ||¡ d|  }t ||¡ d S )Nr´  rµ  rS   r>   r¶  Údefgdefgr¸  )r¹  r—   r˜   r»  r-   r-   r.   Ú.test_arrow_string_multiplication_scalar_repeat%  s   r¾  Úinterpolation)Úlinearrƒ  ÚhigherÚnearestÚmidpointÚquantiler9   c                 C  sB  | j j}|  g d¢¡} t | ¡}tj |¡s"tj |¡s"tj 	|¡rFd}t
jtj|d�� |j||d� W d   ƒ d S 1 s?w   Y  d S tj |¡sXtj |¡sXtj |¡rYntj | jj¡rbn| t
jjtjd|› �d�¡ |  g d¢¡} t | ¡}|j||d�}tj |¡rÞ|dvrÞ|jr�d|j› d	|j› d
�}nd|j› d
�}| |¡}	|	j||d�}
|dkrÇ|jdkr¿|
jdd�}
||
ksÅJ ‚d S |jdkrÒ|
j d¡}
t ||
 | j ¡¡ d S |dkrì|| d ksêJ ‚d S tj|  ddg¡ddgd�}
tj |¡�stj |¡�stj |¡�r|
 d¡}
| d¡}t ||
¡ d S )N©r   r   r   z=Function 'quantile' has no kernel matching input types \(.*\)r«   )Úqr¿  z&quantile not supported by pyarrow for r#   )rƒ  rÁ  zM8[z, rO  r9   r!  F)Úwarnr   ©r$  rõ   ) r4   r2   Útakera   r{   r)   rT   r^   r_   rU   r&   r$   r²   rÄ  rw   rV   rY   r¿   r¤   rf   r+   r'   r(   r[   r›   r&  rÁ   Úto_pydatetimeÚdtÚfloorr“   rÂ   )rd   r¿  rÄ  r,   rc   r   r	  r—   Úpd_dtypeÚser_npr˜   r-   r-   r.   Útest_quantile.  sz   

ÿ
þ
ý
ÿþ
ÿ
þ
ýþÿ



ý
ÿ
þ
ý

rÏ  ztake_idx, exp_idx)r   r   r>   r>   r5   r5   r5   )r   r   r   r>   r5   r5   Ú
multi_modeÚsingle_mode)r1   c                 C  s@   |   |¡}t |¡}|jdd�}t |   |¡¡}t ||¡ d S )NT©Údropna)rÉ  ra   r{   Úmoder“   rÂ   )ro   Útake_idxÚexp_idxrd   r   r—   r˜   r-   r-   r.   Útest_mode_dropna_true{  s
   

r×  c                 C  sx   t jd d | d g| jd�}|jdd�}t jd g| jd�}t ||¡ t j| d d g| jd�}|jdd�}t ||¡ d S )Nr   rS   FrÒ  )ra   r{   r4   rÔ  r“   rÂ   )rd   Ú	more_nansr—   r˜   r-   r-   r.   Útest_mode_dropna_false_mode_naˆ  s   rÙ  zarrow_dtype, expected_typeé   Úf1Úf2c                 C  s   t | ƒj|ks	J ‚d S r…   )r   rf   )Úarrow_dtypeÚexpected_typer-   r-   r.   Útest_arrow_dtype_type”  s   rß  c                  C  sh   t t g d¢¡ƒ} t| ƒsJ ‚tjj | ¡sJ ‚t t	t
| ƒƒ¡}||  }|t | ¡ }t ||¡ d S )N©TFT)r!   r)   rb   r   ra   ÚcoreÚcommonÚis_bool_indexerr{   r±  rz  r•   Úasarrayr“   rÂ   )rd   rN  r—   r˜   r-   r-   r.   Útest_is_bool_dtype¨  s   rå  c                 C  sL   | j j}tj |¡stj |¡stj |¡rt| ƒsJ ‚d S t| ƒr$J ‚d S r…   )r4   r2   r)   rT   rV   rw   rY   r   ©rd   rÄ   r-   r-   r.   Útest_is_numeric_dtype³  s   
ÿ
þ
ýrç  c                 C  ó4   | j j}tj |¡rt| ƒsJ ‚d S t| ƒrJ ‚d S r…   )r4   r2   r)   rT   rw   r   ræ  r-   r-   r.   Útest_is_integer_dtypeÀ  s   ré  c                 C  rè  r…   )r4   r2   r)   rT   rW   r   ræ  r-   r-   r.   Útest_is_signed_integer_dtypeÉ  ó   rê  c                 C  rè  r…   )r4   r2   r)   rT   rX   r   ræ  r-   r-   r.   Útest_is_unsigned_integer_dtypeÑ  rë  rì  c                 C  rè  r…   )r4   r2   r)   rT   rV   r   ræ  r-   r-   r.   Útest_is_float_dtypeÙ  rë  rí  c                 C  sl   t  | ¡}| d¡}t |¡}t |¡}t|ƒt|ƒksJ ‚t |¡}t ||¡ t |¡}t ||¡ d S )Nr>   )	ra   r{   ÚheadÚpickleÚdumpsrz  Úloadsr“   rÂ   )rd   r˜   Úexpected_slicedÚfull_pickledÚsliced_pickledr—   Úresult_slicedr-   r-   r.   Útest_pickle_roundtripá  s   





rö  c                 C  sH   | j  ¡ j}| | j¡}t|jtƒrJ ‚t|jtƒsJ ‚t || ¡ d S r…   )	r¤   Ú	to_pandasrb   rÁ   r4   r¦   r   r“   r¥   )rd   Úpd_arrayr—   r-   r-   r.   Útest_astype_from_non_pyarrowñ  s
   rù  c                  C  s6   t  dg¡} |  d¡}t jdgdd�}t ||¡ d S )Nú1.0rõ   r7   rS   ©ra   r{   rÁ   r“   rÂ   ©r   r—   r˜   r-   r-   r.   Ú&test_astype_float_from_non_pyarrow_strú  s   
rý  c                  C  s2   t jddgidd�} | jddd�}t || ¡ d S )NÚcoli@frº   rS   úfloat[pyarrow]r‚   )Úerrors)ra   r(  rÁ   r“   r+  )r˜   r—   r-   r-   r.   Útest_astype_errors_ignore  s   r  c                 C  s–   |   ¡ }| jj}tj |¡stj |¡rt d¡ ntj 	|¡r(t
 t| ƒ¡}nt
 | j¡}| jrCt| jƒsC| t¡}tj|t | ¡< t ||¡ d S )Nz Tested in test_to_numpy_temporal)r‘   r¤   rf   r)   rT   r\   r[   r&   rÕ   rZ   r•   rb   ÚlistÚ_hasnar   r4   rÁ   r’   ra   r¦  r  r“   r”   )rd   r—   rÄ   r˜   r-   r-   r.   Útest_to_numpy_with_defaults	  s   
r  c                  C  sP   dd g} t j| dd�}| ¡ }t dtjg¡}t|d tƒs J ‚t ||¡ d S )Nr:   r»   rS   r   )	ra   rb   r‘   r•   r–   r¦   Úfloatr“   r”   )rd   rü   r—   r˜   r-   r-   r.   Útest_to_numpy_int_with_na  s   r  zna_val, exp)r:   r:   c                 C  sH   t jt jt jgdd�}|jd| d�}tj|gd dd�}t ||¡ d S )Núnull[pyarrow]rS   rŒ   r�   r>   ©ra   rb   r¦  r‘   r•   r“   r”   )Úna_valrˆ  rü   r—   r˜   r-   r-   r.   Útest_to_numpy_null_array&  s   r
  c                  C  sH   t jt jt jgdd�} | jd d�}tjt jgd dd�}t ||¡ d S )Nr  rS   r>   r’   r  ©rü   r—   r˜   r-   r-   r.   Ú!test_to_numpy_null_array_no_dtype/  s   r  c                  C  s„   t jdt jgdd�} | jdd�}tjddgtjd�}t ||¡ t jdt jgdd�} | jdd�}tjddgtjd�}t ||¡ d S )	NTrI  rS   F)rŽ   r7   r‹   r8   )	ra   rb   r¦  r‘   r•   r…  r“   r”   Úfloat32r  r-   r-   r.   Útest_to_numpy_without_dtype7  s   r  c                 C  s®   |   ¡ }|  ¡ }| d |d d …< tj| d gt| ƒ | jd�}t ||¡ |  ¡ }| d d d… |d d …< | d d d… }t ||¡ |  ¡ }|  ¡ |d d …< | }t ||¡ d S )Nr   rS   r<   )Úcopyr!   rg   rz  r4   r“   r¥   Útolist)rd   Úorigr—   r˜   r-   r-   r.   Útest_setitem_null_sliceD  s    þr  c                 C  s®   | j j}tj |¡stj |¡rd}t}d}n tj |¡s)tj |¡s)tj 	|¡r1d}tj
}d}nd}t}d}tj||d�� || d d …< W d   ƒ d S 1 sPw   Y  d S )Né{   zInvalid value '123' for dtypeÚfoozCould not convertzInvalid value 'foo' for dtyper«   )r¤   rf   r)   rT   r^   r_   rÖ   rw   rV   rU   r*   r&   r$   )rd   rÄ   Ú
fill_valueÚerrr	  r-   r-   r.   Útest_setitem_invalid_dtype[  s(   
ÿ
þ
ý"ÿr  c                  C  sv   t jt d¡t d¡gt  ¡ d�} | jt  ¡ tt  ¡ ƒijd�}tj	t d¡t d¡gtt  ¡ ƒd�}t
 ||¡ d S )Nz
2019-12-31©rf   ©Útypes_mapperrS   )r)   rb   ra   Ú	TimestampÚdate32r÷  r   Údate64Úgetr{   r“   rÂ   )Ú
date_arrayr—   r˜   r-   r-   r.   Ú&test_from_arrow_respecting_given_dtyper  s   ÿÿ
þr   c                  C  sf   t jddgt  ¡ d�} t t j¡� | jt  ¡ tt  ¡ ƒij	d� W d   ƒ d S 1 s,w   Y  d S )Nr  ç      @r  r  )
r)   rb   rŒ   r“   Úexternal_error_raisedr*   r÷  r   r  r  )rb   r-   r-   r.   Ú-test_from_arrow_respecting_given_dtype_unsafe€  s    "ÿr#  c                  C  s�   d} t jdddt jg| d�}| d¡}t jdddt jg| d�}t ||¡ t jd	t jd
g| d�}| d¡}t jdt jdg| d�}t ||¡ d S )Nrõ   r8   g®Gáz®ó?g{®Gáz@rS   r:   g333333ó?gÍÌÌÌÌÌ@gš™™™™Ù^@g¤p=
×cL@r<   g      ^@g      N@)ra   r{   r¦  Úroundr“   rÂ   ©r4   r   r—   r˜   r-   r-   r.   Ú
test_round†  s   

r&  c                 C  sr   | \}}}|   g d¢¡}tj|d< |rt |¡}d}tjt|d�� | |¡ W d   ƒ d S 1 s2w   Y  d S )N)r>   r   r:   r<   zOsearchsorted requires array to be sorted, which is impossible with NAs present.r«   )rÉ  ra   r¦  r{   r&   r$   r'  Úsearchsorted)rs   Ú	as_seriesrI   rj   rH   rü   r	  r-   r-   r.   Ú test_searchsorted_with_na_raises”  s   


ÿ"ÿr)  c               
   C  s^   t  t jddgtt t ¡ t ¡ ¡ƒd�ddgdœ¡} |  ¡ }| j	ddgd	�}t
 ||¡ d S )
Nr‡   r=  rS   r:   r>   ©rH   rI   rH   rI   )Úby)ra   r(  r{   r   r)   Ú
dictionaryÚint32r´   r  Úsort_valuesr“   r+  )r,  r˜   r—   r-   r-   r.   Útest_sort_values_dictionary¥  s   ÿüÿr/  Úpatr´  z	a[a-z]{2}c                 C  sP   t jdd gtt ¡ ƒd�}|j | ¡}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr´  rS   r:   )
ra   r{   r   r)   r´   rÈ   rå   r-  r“   rÂ   )r0  r   r—   r˜   r-   r-   r.   Útest_str_count³  ó   r1  c                  C  s^   t jdd gtt ¡ ƒd�} tjtdd�� | jj	ddd� W d   ƒ d S 1 s(w   Y  d S )Nr´  rS   z	count notr«   r:   ©Úflags)
ra   r{   r   r)   r´   r&   r$   r`   rÈ   rå   ©r   r-   r-   r.   Ú test_str_count_flags_unsupported»  ó   "ÿr6  zside, str_funcrª  Úrjustr«  ÚljustÚbothÚcenterc                 C  sb   t jdd gtt ¡ ƒd�}|jjd| dd�}t jtd|ƒddƒd gtt ¡ ƒd�}t 	||¡ d S )NrH   rS   rô   r‡   )ÚwidthÚsideÚfillchar)
ra   r{   r   r)   r´   rÈ   Úpadr¾   r“   rÂ   )r=  Ústr_funcr   r—   r˜   r-   r-   r.   Útest_str_padÁ  s   ÿrA  c                  C  s^   t jdd gtt ¡ ƒd�} tjtdd�� | j 	ddd¡ W d   ƒ d S 1 s(w   Y  d S )NrH   rS   zInvalid side: foor«   rô   r  r‡   )
ra   r{   r   r)   r´   r&   r$   r'  rÈ   r?  r5  r-   r-   r.   Útest_str_pad_invalid_sideÍ  r7  rB  zpat, case, na, regex, expÚabFTÚAbz	a[a-z]{1}z	A[a-z]{1}c                 C  sT   t jdd gtt ¡ ƒd�}|jj| |||d�}t j|tt ¡ ƒd�}t 	||¡ d S )Nr´  rS   )ÚcaseÚnaÚregex)
ra   r{   r   r)   r´   rÈ   Úcontainsr…  r“   rÂ   )r0  rE  rF  rG  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_containsÓ  s   rI  c                  C  s^   t jdd gtt ¡ ƒd�} tjtdd�� | jj	ddd� W d   ƒ d S 1 s(w   Y  d S )Nr´  rS   zcontains notr«   rH   r:   r3  )
ra   r{   r   r)   r´   r&   r$   r`   rÈ   rH  r5  r-   r-   r.   Ú#test_str_contains_flags_unsupportedä  r7  rJ  zside, pat, na, expÚ
startswith)TNFrI   r›  Úendswith)FTFÚbc)rH   ÚeÚg)TNT)rH   rj   rO  r-   )FNFc                 C  sT   t jg d¢tt ¡ ƒd�}t|j| ƒ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )N)r´  NÚefgrS   )rF  ©
ra   r{   r   r)   r´   r¾   rÈ   r…  r“   rÂ   )r=  r0  rF  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_start_ends_withê  s   rR  r=  )rK  rL  c                 C  sT   t jd d gtt ¡ ƒd�}t|j| ƒdƒ}t jd d gtt ¡ ƒd�}t 	||¡ d S )NrS   r-   rQ  )r=  r   r—   r˜   r-   r-   r.   Ú/test_str_starts_ends_with_all_nulls_empty_tupleþ  s   rS  zarg_name, argÚreplrE  r4  r:   c                 C  st   t jdd gtt ¡ ƒd�}ddddœ}||| < tjtdd�� |jj	d	i |¤Ž W d   ƒ d S 1 s3w   Y  d S )
Nr´  rS   rI   r‡   T)r0  rT  rG  zreplace is not supportedr«   r-   )
ra   r{   r   r)   r´   r&   r$   r`   rÈ   Úreplace)Úarg_nameÚargr   Úkwargsr-   r-   r.   Útest_str_replace_unsupported  s   "ÿrY  zpat, repl, n, regex, exprH   r‡   r<   ÚxbxcÚxbacz[a-b]Úxxxcc                 C  sT   t jdd gtt ¡ ƒd�}|jj| |||d�}t j|tt ¡ ƒd�}t ||¡ d S )NÚabacrS   )ÚnrG  )	ra   r{   r   r)   r´   rÈ   rU  r“   rÂ   )r0  rT  r^  rG  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_replace  s   	r_  c            	      C  sÒ   t jddgtt ¡ ƒd�} | j dddd¡}t jddgtt ¡ ƒd�}t ||¡ |  	t j
d	d
�¡}|j dddd¡}| 	|j¡}t ||¡ |  	t j
d	tjd�¡}|j dddd¡}| 	|j¡}t ||¡ d S )Nr´  ÚaaaaaarS   rH   r·  éýÿÿÿTrM  r    ©Ústorage)rc  rŽ   )ra   r{   r   r)   r´   rÈ   rU  r“   rÂ   rÁ   ÚStringDtyper4   r•   r–   )	r   Úactualr˜   Úser2Úactual2Ú	expected2Úser3Úactual3Ú	expected3r-   r-   r.   Útest_str_replace_negative_n#  s   rl  c                  C  s^   t jdd gtt ¡ ƒd�} tjtdd�� | j 	ddg¡ W d   ƒ d S 1 s(w   Y  d S )Nr´  rS   zrepeat is notr«   r:   r>   )
ra   r{   r   r)   r´   r&   r$   r`   rÈ   rº  r5  r-   r-   r.   Útest_str_repeat_unsupported6  r7  rm  c                  C  óP   t jdd gtt ¡ ƒd�} | j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S )Nr´  rS   r>   r¶  )	ra   r{   r   r)   r´   rÈ   rº  r“   rÂ   rü  r-   r-   r.   Útest_str_repeat<  ó   ro  zpat, case, na, expc                 C  sR   t jdd gtt ¡ ƒd�}|jj| ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )Nr´  rS   ©rE  rF  )
ra   r{   r   r)   r´   rÈ   r¬   r…  r“   rÂ   ©r0  rE  rF  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_matchC  s   rs  ©TFFNÚAbc)FFFNúabc$zabc\$©FTFNzAbc$zAbc\$z(abc)|(abx)z((abc)|(abx))c                 C  sR   t jg d¢tt ¡ ƒd�}|jj| ||d�}t j|tt ¡ ƒd�}t 	||¡ d S )N)r´  rv  z$abcNrS   rq  )
ra   r{   r   r)   r´   rÈ   Ú	fullmatchr…  r“   rÂ   rr  r-   r-   r.   Útest_str_fullmatchU  s   ry  zsub, start, end, exp, exp_typrô   c                 C  sN   t jdd gtt ¡ ƒd�}|jj| ||d�}t j|t|ƒd�}t ||¡ d S )Nr´  rS   )ÚstartÚend©	ra   r{   r   r)   r´   rÈ   Úfindr“   rÂ   )Úsubrz  r{  rˆ  Úexp_typr   r—   r˜   r-   r-   r.   Útest_str_findq  s   r€  c                  C  óV   t jdd gtt ¡ ƒd�} | jjdddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr´  rS   rI   iüÿÿrô   ©r~  rz  r{  r:   ©
ra   r{   r   r)   r´   rÈ   r}  r  r“   rÂ   rü  r-   r-   r.   Útest_str_find_negative_start|  ó   r„  c                  C  sL   t jdd gtt ¡ ƒd�} | jjddd�}t jdd gdd�}t ||¡ d S )Nr´  rS   rC  r:   )rz  r<   r»   r|  rü  r-   r-   r.   Útest_str_find_no_end„  s   r†  c                  C  r�  )NÚabcdefgrS   Údéúÿÿÿra  r‚  rô   rƒ  rü  r-   r-   r.   Ú)test_str_find_negative_start_negative_end‹  r…  rŠ  c                  C  sT   t jdd gtt ¡ ƒd�} | jjddd�}t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr‡  rS   rˆ  rÚ  )r~  rz  r<   rƒ  rü  r-   r-   r.   Útest_str_find_large_start“  s   r‹  z,https://github.com/apache/arrow/issues/36311rš   rz  )éñÿÿÿra  r   r:   é   Nr{  )rŒ  r<   r   rô   r�  Nr~  )r·  ÚazÚabcerH   Úcaac           	      C  sš   t jg d¢tt ¡ ƒd�}| t jdd�¡}|j || |¡}|j || |¡ |j	¡}t
 ||¡ | t jdd�¡}|j || |¡ |j	¡}t
 ||¡ d S )N)Úabcaadefr´  Úabcdeddefgj8292rC  rH   r·  rS   r   rb  r    )ra   r{   r   r)   r´   rÁ   rd  rÈ   r}  r4   r“   rÂ   )	rz  r{  r~  rN  Úobject_seriesr—   r˜   Úarrow_str_seriesÚresult2r-   r-   r.   Útest_str_find_e2e›  s   
þr–  c                  C  r�  )Nr‡  rS   rˆ  ra  r‰  r‚  r<   rƒ  rü  r-   r-   r.   Ú2test_str_find_negative_start_negative_end_no_match°  r…  r—  zi, exp)rI   rN  N)rj   rN  Nr>   )rj   NNra  )rH   NNrž  c                 C  sL   t jg d¢tt ¡ ƒd�}|j | ¡}t j|tt ¡ ƒd�}t ||¡ d S )N)r´  ÚdeNrS   )	ra   r{   r   r)   r´   rÈ   r  r“   rÂ   )r÷   rˆ  r   r—   r˜   r-   r-   r.   Útest_str_get¸  s   r™  z=TODO: StringMethods._validate should support Arrow list typesrÐ   c                  C  sX   t  tt tdƒtdƒd g¡ƒ¡} | j d¡}t jg d¢tt 	¡ ƒd�}t
 ||¡ d S )Nr´  Ú123ú=©za=b=cz1=2=3NrS   )ra   r{   r!   r)   rb   r  rÈ   Újoinr   r´   r“   rÂ   rü  r-   r-   r.   Útest_str_joinÉ  s   "rž  c                  C  sN   t  tt g d¢¡ƒ¡} | j d¡}t jg d¢tt ¡ ƒd�}t	 
||¡ d S )N)r´  rš  Nr›  rœ  rS   )ra   r{   r!   r)   rb   rÈ   r�  r   r´   r“   rÂ   rü  r-   r-   r.   Útest_str_join_string_typeÔ  s   rŸ  zstart, stop, step, expÚdcbac                 C  óP   t jdd gtt ¡ ƒd�}|j | ||¡}t j|tt ¡ ƒd�}t ||¡ d S ©NÚabcdrS   )	ra   r{   r   r)   r´   rÈ   Úslicer“   rÂ   )rz  ÚstopÚsteprˆ  r   r—   r˜   r-   r-   r.   Útest_str_sliceÛ  s   
r§  zstart, stop, repl, expÚaxcdÚxcdÚcdc                 C  r¡  r¢  )	ra   r{   r   r)   r´   rÈ   Úslice_replacer“   rÂ   )rz  r¥  rT  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_slice_replaceë  s   	r¬  zvalue, method, exp)Úa1cÚisalnumT)z!|,r®  F)ÚaaaÚisalphaT)z!!!r°  F)u   Ù Ú	isdecimalT)z~!r±  F)rJ   ÚisdigitT)ú~r²  F)r¯  ÚislowerT)ÚaaAr´  F)rš  Ú	isnumericT)Ú11Ir¶  F)ú ÚisspaceT)r·  r¹  F)zThe ThatÚistitleT)zthe Thatrº  F)ÚAAAÚisupperT)ÚAAcr¼  Fc                 C  sR   t j| d gtt ¡ ƒd�}t|j|ƒƒ }t j|d gtt ¡ ƒd�}t 	||¡ d S r£   rQ  )Úvaluer  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_is_functionsú  s   r¿  zmethod, expÚ
capitalizezAbc defÚtitlezAbc DefÚswapcasezAbC Defrƒ  zabc defÚupperzABC DEFÚcasefoldc                 C  sR   t jdd gtt ¡ ƒd�}t|j| ƒƒ }t j|d gtt ¡ ƒd�}t ||¡ d S )NzaBc dEFrS   ©	ra   r{   r   r)   r´   r¾   rÈ   r“   rÂ   )r  rˆ  r   r—   r˜   r-   r-   r.   Útest_str_transform_functions  s   rÆ  c                  C  sN   t jdd gtt ¡ ƒd�} | j ¡ }t jdd gtt ¡ ƒd�}t 	||¡ d S )Nr£  rS   r5   )
ra   r{   r   r)   r´   rÈ   rz  r-  r“   rÂ   rü  r-   r-   r.   Útest_str_len*  s   
rÇ  zmethod, to_strip, val)r@  Nz abc )r@  r‡   Úxabcx)ÚlstripNz abc)rÉ  r‡   Úxabc)ÚrstripNzabc )rË  r‡   Úabcxc                 C  sV   t j|d gtt ¡ ƒd�}t|j| ƒ|d�}t jdd gtt ¡ ƒd�}t ||¡ d S )NrS   )Úto_stripr´  rÅ  )r  rÍ  Úvalr   r—   r˜   r-   r-   r.   Útest_str_strip1  s   rÏ  rÎ  Úabc123c                 C  óP   t j| d gtt ¡ ƒd�}|j d¡}t jdd gtt ¡ ƒd�}t ||¡ d S ©NrS   rš  r´  )	ra   r{   r   r)   r´   rÈ   Úremovesuffixr“   rÂ   ©rÎ  r   r—   r˜   r-   r-   r.   Útest_str_removesuffixC  r2  rÕ  Ú123abcc                 C  rÑ  rÒ  )	ra   r{   r   r)   r´   rÈ   Úremoveprefixr“   rÂ   rÔ  r-   r-   r.   Útest_str_removeprefixK  r2  rØ  r   r‚   Ústrictzencoding, expÚutf8s   abcÚutf32s   ÿþ  a   b   c   c                 C  sR   t jdd gtt ¡ ƒd�}|j || ¡}t j|d gtt ¡ ƒd�}t 	||¡ d S ©Nr´  rS   )
ra   r{   r   r)   r´   rÈ   Úencoder¹  r“   rÂ   )r   Úencodingrˆ  r   r—   r˜   r-   r-   r.   Útest_str_encodeS  s   	rß  c                 C  s^   t jg d¢tt ¡ ƒd�}|jjd| d�}t jdgg d gtt t ¡ ¡ƒd�}t 	||¡ d S )N)r´  rP  NrS   rI   r3  )
ra   r{   r   r)   r´   rÈ   ÚfindallÚlist_r“   rÂ   )r4  r   r—   r˜   r-   r-   r.   Útest_str_findallb  s   $râ  r  r$  Úrindexz
start, endc                 C  sœ   t jdd gtt ¡ ƒd�}t|j| ƒd||ƒ}t jdd gtt ¡ ƒd�}t 	||¡ t
jtdd�� t|j| ƒd||ƒ W d   ƒ d S 1 sGw   Y  d S )NÚabcbarS   rj   r>   zsubstring not foundr«   r  )ra   r{   r   r)   r´   r¾   rÈ   r  r“   rÂ   r&   r$   r'  )r  rz  r{  r   r—   r˜   r-   r-   r.   Útest_str_r_indexj  s   	"ÿrå  ÚformÚNFCÚNFKCc                 C  s>   t jdd gtt ¡ ƒd�}|j | ¡}| ¡ }t 	||¡ d S rÜ  )
ra   r{   r   r)   r´   rÈ   Ú	normalizer  r“   rÂ   )ræ  r   r—   r˜   r-   r-   r.   Útest_str_normalize|  s   rê  c                 C  sT   t jg d¢tt ¡ ƒd�}|j d| |¡}t jg d¢tt ¡ ƒd�}t 	||¡ d S )N)rä  r  NrS   rj   )r>   r<   N)
ra   r{   r   r)   r´   rÈ   Úrfindr  r“   rÂ   )rz  r{  r   r—   r˜   r-   r-   r.   Útest_str_rfind„  s   rì  c                  C  sT   t jdd gtt ¡ ƒd�} | j ddi¡}t jdd gtt ¡ ƒd�}t ||¡ d S )Nrä  rS   éa   rI   Úbbcbb)	ra   r{   r   r)   r´   rÈ   Ú	translater“   rÂ   rü  r-   r-   r.   Útest_str_translate’  s   rð  c                  C  rn  )Nrä  rS   rô   zabc
ba)	ra   r{   r   r)   r´   rÈ   Úwrapr“   rÂ   rü  r-   r-   r.   Útest_str_wrap™  rp  rò  c                  C  sb   t jg d¢tt ¡ ƒd�} | j ¡ }t jg d¢g d¢g d¢gtt ¡ ƒg d¢d�}t	 
||¡ d S )N)za|bNza|crS   )TTFr›  rà  )rH   rI   rj   )r4   rQ  )ra   r{   r   r)   r´   rÈ   Úget_dummiesr(  r…  r“   r+  rü  r-   r-   r.   Útest_get_dummies   s   

ýrô  c                  C  s  t jdd gtt ¡ ƒd�} | j d¡}t jg d¢g d¢gtt ¡ ƒd�}t 	||¡ | jjddd�}t  t
t g d¢d g¡ƒ¡}t ||¡ | j d¡}t jg d¢g d¢gtt ¡ ƒd�}t 	||¡ | jjddd�}t  t
t g d¢d g¡ƒ¡}t ||¡ d S )	Nrä  rS   rI   )rH   rI   Úcbarž  F©Úexpand)r´  rI   rH   )ra   r{   r   r)   r´   rÈ   Ú	partitionr(  r“   r+  r!   rb   rÂ   Ú
rpartitionrü  r-   r-   r.   Útest_str_partition«  s"   ÿÿrú  ÚrsplitÚsplitc                 C  sT   t jdd gtt ¡ ƒd�}t|j| ƒƒ }t  tt g d¢d g¡ƒ¡}t	 
||¡ d S )Nza1 cbc
brS   )Úa1ÚcbcrI   )ra   r{   r   r)   r´   r¾   rÈ   r!   rb   r“   rÂ   ©r  r   r—   r˜   r-   r-   r.   Útest_str_split_pat_noneÂ  s   r   c                  C  sf  t jg d¢tt ¡ ƒd�} | j d¡}t  tt g d¢g d¢d g¡ƒ¡}t	 
||¡ | jjddd�}t  tt dd	gd
d	gd g¡ƒ¡}t	 
||¡ | jjddd�}t  tt ddgddgd g¡ƒ¡}t	 
||¡ | jjdddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ | jjddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ d S )N©Úa1cbcbÚa2cbcbNrS   rj   ©rý  rI   rI   ©Úa2rI   rI   r:   ©r^  rý  Úbcbr  z[1-2]T)rG  rH   Úcbcb)rG  r÷  )rH   rH   N)r	  r	  N©r   r:   r?   rö  ©rH   r  N©r	  NN)ra   r{   r   r)   r´   rÈ   rü  r!   rb   r“   rÂ   r(  r+  rü  r-   r-   r.   Útest_str_splitË  s<   ÿÿÿþÿþÿr  c                  C  s(  t jg d¢tt ¡ ƒd�} | j d¡}t  tt g d¢g d¢d g¡ƒ¡}t	 
||¡ | jjddd�}t  tt dd	gd
d	gd g¡ƒ¡}t	 
||¡ | jjdddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ | jjddd�}t  tt g d¢¡ƒtt g d¢¡ƒdœ¡}t	 ||¡ d S )Nr  rS   rj   r  r  r:   r  Úa1cbrI   Úa2cbT)r^  r÷  )r  r  N)rI   rI   Nr
  r?   rö  r  r  )ra   r{   r   r)   r´   rÈ   rû  r!   rb   r“   rÂ   r(  r+  rü  r-   r-   r.   Útest_str_rsplitó  s2   ÿÿþÿþÿr  c                  C  sZ   t jg d¢tt ¡ ƒd�} tjtdd�� | j 	d¡ W d   ƒ d S 1 s&w   Y  d S )N©rý  Úb2Úc3rS   z*pat=.* must contain a symbolic group name.r«   z[ab](\d))
ra   r{   r   r)   r´   r&   r$   r'  rÈ   Úextractr5  r-   r-   r.   Útest_str_extract_non_symbolic	  s   "ÿr  r÷  c                 C  sf   t jg d¢tt ¡ ƒd�}|jjd| d�}t  tt 	g d¢¡ƒtt 	g d¢¡ƒdœ¡}t
 ||¡ d S )Nr  rS   z(?P<letter>[ab])(?P<digit>\d)rö  )rH   rI   N©r?   rJ   N)ÚletterÚdigit)ra   r{   r   r)   r´   rÈ   r  r(  r!   rb   r“   r+  )r÷  r   r—   r˜   r-   r-   r.   Útest_str_extract	  s   þÿr  c                  C  sŽ   t jg d¢tt ¡ ƒd�} | jjddd�}t  dtt 	g d¢¡ƒi¡}t
 ||¡ | jjddd�}t jtt 	g d¢¡ƒdd	�}t
 ||¡ d S )
Nr  rS   z[ab](?P<digit>\d)Trö  r  r  F©rú   )ra   r{   r   r)   r´   rÈ   r  r(  r!   rb   r“   r+  rÂ   rü  r-   r-   r.   Útest_str_extract_expand(	  s   ÿÿr  r&  )r"  r!  rM  rN  c                 C  sF   ddg}t  | ¡}tj||d�}tt jdd g|d�ƒ}t ||¡ d S )NÚ1000ÚNaTrS   éè  r  )r)   Údurationr!   r­   rb   r“   r¥   )r&  ÚstringsrÄ   r—   r˜   r-   r-   r.   Ú#test_duration_from_strings_with_nat7	  s
   
r!  c                 C  sX   | j j}tj |¡s*tjtdd�� t 	| ¡j
 W d   ƒ d S 1 s#w   Y  d S d S )Nz2Can only use .dt accessor with datetimelike valuesr«   )r4   r2   r)   rT   r¿   r&   r$   ÚAttributeErrorra   r{   rË  rx   r-   r-   r.   Útest_unsupported_dtA	  s   ÿ"ýÿr#  zprop, expectedÚyearéç  ÚdayÚday_of_weekÚ	dayofweekÚweekdayÚday_of_yearÚ	dayofyearÚhourÚminuteÚis_leap_yearÚmicrosecondrG   ÚmonthÚ
nanosecondr§  ÚquarterÚsecondrq   r   r   c                 C  s–   t jt jddddddddd	�d gtt d
¡ƒd�}t|j| ƒ}d }t|t	ƒr+t 
¡ }n
t|tƒr5t d
¡}t  ttj|d g|d�ƒ¡}t ||¡ d S )Nr%  r:   r>   rô   r5   rq   rG   r§  )r$  r0  r&  r,  r-  r3  r/  r1  r"  rS   r  )ra   r{   r  r   r)   r¯  r¾   rË  r¦   r   r  r   Útime64r!   rb   r“   rÂ   )Úpropr˜   r   r—   Úexp_typer-   r-   r.   Útest_dt_propertiesJ	  s.   ø
õò



r7  c               	   C  ó¤   t jtddddd�tddddd�tddddd�d gtt d¡ƒd	�} | jj}t jg d
¢tt ¡ ƒd	�}t	 
||¡ | jj}t jg d¢tt ¡ ƒd	�}t	 
||¡ d S )Nr%  rC   r>   rô   ©r$  r0  r&  r,  r:   rD   r!  rS   rw  ©FFTN)ra   r{   r   r   r)   r¯  rË  Úis_month_startr…  r“   rÂ   Úis_month_endrü  r-   r-   r.   Útest_dt_is_month_start_end{	  ó   üù	r=  c               	   C  s¤   t jtddddd�tddddd�tddddd�d gtt d¡ƒd�} | jj}t jg d	¢tt ¡ ƒd�}t	 
||¡ | jj}t jg d
¢tt ¡ ƒd�}t	 
||¡ d S )Nr%  rC   rD   rô   r9  r:   r!  rS   rw  rt  )ra   r{   r   r   r)   r¯  rË  Úis_year_startr…  r“   rÂ   Úis_year_endrü  r-   r-   r.   Útest_dt_is_year_start_endŽ	  r>  rA  c               	   C  r8  )Nr%  é   é   rô   r9  r:   rD   r!  rS   rw  r:  )ra   r{   r   r   r)   r¯  rË  Úis_quarter_startr…  r“   rÂ   Úis_quarter_endrü  r-   r-   r.   Útest_dt_is_quarter_start_end¡	  r>  rF  Údays_in_monthÚdaysinmonthc              	   C  sz   t jtddddd�tddddd�tddddd�d gtt d¡ƒd	�}t|j| ƒ}t jg d
¢tt ¡ ƒd	�}t	 
||¡ d S )Nr%  rô   rC  r9  r5   r:   r>   r!  rS   )rD   rC  é   N)ra   r{   r   r   r)   r¯  r¾   rË  r  r“   rÂ   rÿ  r-   r-   r.   Útest_dt_days_in_month´	  s   üù	rJ  c                  C  sž   t jtdddd�tddddd�tdddd	d
d
d�d gtt d¡ƒd�} | j ¡ }t jtdddd�tdddd�tdddd�d gtt d¡ƒd�}t 	||¡ d S )Nr%  rô   rC  ©r$  r0  r&  r5   r:   r9  r>   é   é;   )r$  r0  r&  r,  r-  r3  r!  rS   )
ra   r{   r   r   r)   r¯  rË  ré  r“   rÂ   rü  r-   r-   r.   Útest_dt_normalizeÄ	  s$   üù
	üù	rN  r!  r"  c                 C  sx   t jtddddd�d gtt | ¡ƒd�}|jj| ksJ ‚|jj}t  t	tj
tddƒd gt | ¡d�ƒ¡}t ||¡ d S )	Nr%  r:   r>   rô   r9  rS   r   r  )ra   r{   r   r   r)   r¯  rË  r&  r   r!   rb   r4  r“   rÂ   ©r&  r   r—   r˜   r-   r-   r.   Útest_dt_time_preserve_unitÛ	  s   þ ÿrP  r›   )Nr®  ú
US/Pacificc                 C  sJ   t jtddddd�d gttjd| d�ƒd�}|jj}|t 	| ¡ks#J ‚d S )	Nr%  r:   r>   rô   r9  r"  ©r›   rS   )
ra   r{   r   r   r)   r¯  rË  r›   r   Úmaybe_get_tz)r›   r   r—   r-   r-   r.   Ú
test_dt_tzê	  s   þrT  c                  C  sb   t jtddddd�d gtt d¡ƒd�} | j ¡ }t jg d¢g d	¢gg d
¢dd�}t	 
||¡ d S )Nr%  r:   r>   rô   r9  r"  rS   )r%  r:   r:   rÅ  )r$  Úweekr&  r»   ©rQ  r4   )ra   r{   r   r   r)   r¯  rË  Úisocalendarr(  r“   r+  rü  r-   r-   r.   Útest_dt_isocalendarô	  s   þ
ýrX  Úday_nameÚSundayÚ
month_nameÚJanuaryc                 C  sd   t |ƒ tjtdddƒd gtt d¡ƒd�}t|j| ƒƒ }tj|d gtt 	¡ ƒd�}t
 ||¡ d S )Nr%  r:   rM  rS   )r/   ra   r{   r   r   r)   r¯  r¾   rË  r´   r“   rÂ   )r  rˆ  r,   r   r—   r˜   r-   r-   r.   Útest_dt_day_month_name
  s
   $r]  c                 C  sf   t | ƒ tjtddddd�d gtt d¡ƒd�}|j d¡}tjd	d gtt 	¡ ƒd�}t
 ||¡ d S )
Nr%  r:   r>   rô   r9  r"  rS   z%Y-%m-%dT%H:%M:%Sz2023-01-02T03:00:00.000000000)r/   ra   r{   r   r   r)   r¯  rË  Ústrftimer´   r“   rÂ   )r,   r   r—   r˜   r-   r-   r.   Útest_dt_strftime
  s   þÿr_  )ÚceilrÌ  r$  c                 C  s²   t jtddddd�d gtt d¡ƒd�}tjtdd	�� t	|j
| ƒd
dd� W d   ƒ n1 s0w   Y  tjtdd	�� t	|j
| ƒd
dd� W d   ƒ d S 1 sRw   Y  d S )Nr%  r:   r>   rô   r9  r"  rS   zambiguous is not supported.r«   Ú1hr  ©Ú	ambiguousznonexistent is not supported.©Únonexistent)ra   r{   r   r   r)   r¯  r&   r$   r`   r¾   rË  ©r  r   r-   r-   r.   Ú*test_dt_roundlike_tz_options_not_supported
  s   þÿ"ÿrg  c                 C  sª   t jtddddd�d gtt d¡ƒd�}tjtdd	�� t	|j
| ƒd
ƒ W d   ƒ n1 s.w   Y  tjtdd	�� t	|j
| ƒd ƒ W d   ƒ d S 1 sNw   Y  d S )Nr%  r:   r>   rô   r9  r"  rS   zfreq='1B' is not supportedr«   Ú1Bz$Must specify a valid frequency: None)ra   r{   r   r   r)   r¯  r&   r$   r'  r¾   rË  rf  r-   r-   r.   Ú"test_dt_roundlike_unsupported_freq*
  s   þÿ"ÿri  Úfreq)ÚDÚhrò   rN  rM  r!  r"  c                 C  sn   t  tdddd�d g¡}tt d¡ƒ}t|j|ƒd| › �ƒ |¡}t| |¡j|ƒd| › �ƒ}t	 
||¡ d S )Nr%  r:   rK  r"  r?   )ra   r{   r   r   r)   r¯  r¾   rË  rÁ   r“   rÂ   )rj  r  r   rc   r˜   r—   r-   r-   r.   Útest_dt_ceil_year_floor7
  s   ÿrm  c                  C  sî   t dddƒt dddƒg} tj| tt d¡ƒd�}d}tjt|d�� |j	 
¡ }W d   ƒ n1 s1w   Y  tj| td�}t ||¡ tdd	„ |D ƒƒsNJ ‚d
}tjt|d�� | d¡j	 
¡ }W d   ƒ n1 sjw   Y  t ||¡ d S )NrA   r:   r%  r"  rS   úCThe behavior of ArrowTemporalProperties.to_pydatetime is deprecatedr«   c                 s  ó   � | ]	}t |ƒtu V  qd S r…   )rf   r   ©Ú.0Úresr-   r-   r.   Ú	<genexpr>M
  ó   € z(test_dt_to_pydatetime.<locals>.<genexpr>z>The behavior of DatetimeProperties.to_pydatetime is deprecatedúdatetime64[ns])r   ra   r{   r   r)   r¯  r“   r0  ÚFutureWarningrË  rÊ  r•   rb   r’   r”   rã   rÁ   )rd   r   r	  r—   r˜   r-   r-   r.   Útest_dt_to_pydatetimeC
  s   ÿÿrw  Ú	date_typer¹   é@   c              	   C  sª   t jtdddƒgtttd| › �ƒƒ ƒd�}d}tjt|d��- t	j
tdd�� |j ¡  W d   ƒ n1 s6w   Y  W d   ƒ d S W d   ƒ d S 1 sNw   Y  d S )	NrA   rC   rD   r   rS   rn  r«   z#to_pydatetime cannot be called with)ra   r{   r   r   r¾   r)   r“   r0  rv  r&   r$   r'  rË  rÊ  )rx  r   r	  r-   r-   r.   Ú test_dt_to_pydatetime_date_errorU
  s   þÿÿ"ÿrz  c                  C  sª   t jtddddd�d gtt d¡ƒd�} tjtdd	�� | j	j
d
dd� W d   ƒ n1 s.w   Y  tjtdd	�� | j	j
d
dd� W d   ƒ d S 1 sNw   Y  d S )Nr%  r:   r>   rô   r9  r"  rS   z ambiguous='NaT' is not supportedr«   r®  r  rb  z"nonexistent='NaT' is not supportedrd  )ra   r{   r   r   r)   r¯  r&   r$   r`   rË  Útz_localizer5  r-   r-   r.   Ú*test_dt_tz_localize_unsupported_tz_optionsb
  s   þÿ"ÿr|  c                  C  sp   t jtddddd�d gttjddd�ƒd	�} | j d ¡}t jtddddd�d gtt d¡ƒd	�}t 	||¡ d S )
Nr%  r:   r>   rô   r9  r"  rQ  rR  rS   )
ra   r{   r   r   r)   r¯  rË  r{  r“   rÂ   rü  r-   r-   r.   Útest_dt_tz_localize_nonen
  s   þþr}  c                 C  sŒ   t |ƒ tjtddddd�d gtt | ¡ƒd�}|j d¡}tj	tddddd�d gt | ¡d�}tj
 |d¡}t t|ƒ¡}t ||¡ d S )	Nr%  r:   r>   rô   r9  rS   rQ  r  ©r/   ra   r{   r   r   r)   r¯  rË  r{  rb   ÚcomputeÚassume_timezoner!   r“   rÂ   )r&  r,   r   r—   Úexp_datar˜   r-   r-   r.   Útest_dt_tz_localize{
  s   þÿr‚  znonexistent, exp_dateÚshift_forwardrC   r9  Úshift_backwardz2023-03-12 01:59:59.999999999c                 C  s†   t |ƒ tjtdddddd�d gtt d¡ƒd�}|jjd	| d
�}tj	|d gt d¡d�}tj
 |d	¡}t t|ƒ¡}t ||¡ d S )Nr%  rô   rC   r>   rC  )r$  r0  r&  r,  r-  r"  rS   rQ  rd  r  r~  )re  Úexp_dater,   r   r—   r�  r˜   r-   r-   r.   Útest_dt_tz_localize_nonexistentŒ
  s   þr†  c                  C  sh   t jtddddd�d gtt d¡ƒd�} tjtdd	�� | j	 
d
¡ W d   ƒ d S 1 s-w   Y  d S )Nr%  r:   r>   rô   r9  r"  rS   z"Cannot convert tz-naive timestampsr«   r®  )ra   r{   r   r   r)   r¯  r&   r$   rÖ   rË  Ú
tz_convertr5  r-   r-   r.   Ú test_dt_tz_convert_not_tz_raises¡
  s   þ"ÿrˆ  c                  C  sn   t jtddddd�d gtt dd¡ƒd�} | j d ¡}t jtddddd�d gtt d¡ƒd�}t 	||¡ d S )	Nr%  r:   r>   rô   r9  r"  rQ  rS   ©
ra   r{   r   r   r)   r¯  rË  r‡  r“   rÂ   rü  r-   r-   r.   Útest_dt_tz_convert_noneª
  s   þþrŠ  c                 C  sp   t jtddddd�d gtt | d¡ƒd�}|j d¡}t jtddddd�d gtt | d¡ƒd�}t 	||¡ d S )	Nr%  r:   r>   rô   r9  rQ  rS   z
US/Easternr‰  rO  r-   r-   r.   Útest_dt_tz_convert·
  s   þþr‹  ztimestamp[ms][pyarrow]zduration[ms][pyarrow]c                 C  s@   t jdd g| d�}|j d¡}| |  dd¡¡}t ||¡ d S )Nr  rS   r"  rM  )ra   r{   rË  Úas_unitrÁ   rU  r“   rÂ   r%  r-   r-   r.   Útest_as_unitÅ
  s   r�  ÚdaysÚsecondsÚmicrosecondsÚnanosecondsc                 C  sf   t jt jddddd�d gtt d¡ƒd�}t|j| ƒ}t  ttj	|d gt 
¡ d�ƒ¡}t ||¡ d S )	Nr:   r>   rô   r5   ©rŽ  r�  r�  r‘  r"  rS   r  )ra   r{   Ú	Timedeltar   r)   r  r¾   rË  r!   rb   r-  r“   rÂ   )r5  r˜   r   r—   r-   r-   r.   Útest_dt_timedelta_propertiesÎ
  s    üù	öÿr”  c                  C  sd   t jt jddddd�d gtt d¡ƒd�} | j ¡ }t  ttj	dd gt 
¡ d	�ƒ¡}t ||¡ d S )
Nr:   r>   rô   r5   r’  r"  rS   gN%  õ@r  )ra   r{   r“  r   r)   r  rË  Útotal_secondsr!   rb   rŒ   r“   rÂ   rü  r-   r-   r.   Útest_dt_timedelta_total_secondsì
  s    üù	ö
ÿr–  c                  C  sŠ   t dddƒt dddƒg} tj| tt d¡ƒd�}|j ¡ }tj	| t
d�}t ||¡ tdd„ |D ƒƒs5J ‚| d	¡j ¡ }t ||¡ d S )
Nr:   r>   rô   r5   r"  rS   c                 s  ro  r…   )rf   r   rp  r-   r-   r.   rs  	  rt  z)test_dt_to_pytimedelta.<locals>.<genexpr>útimedelta64[ns])r   ra   r{   r   r)   r  rË  Úto_pytimedeltar•   rb   r’   r“   r”   rã   rÁ   ©rd   r   r—   r˜   r-   r-   r.   Útest_dt_to_pytimedelta  s   
rš  c                  C  sb   t jt jddddd�d gtt d¡ƒd�} | jj}t jg d¢g d	¢gg d
¢dd�}t	 
||¡ d S )Nr:   r>   rô   r5   r’  r"  rS   )r:   r   r   r>   r   rô   r5   )NNNNNNN)rŽ  ÚhoursÚminutesr�  Úmillisecondsr�  r‘  rº   rV  )ra   r{   r“  r   r)   r  rË  Ú
componentsr(  r“   r+  rü  r-   r-   r.   Útest_dt_components  s$   üù	ö	õrŸ  r¸   c                 C  sD   t jd gdd�}t|| ƒ|d�}|r| dk}nt j}||u s J ‚d S )Nrõ   rS   r·   rã   )ra   r{   r¾   r¦  )rð   r¸   r   r—   r˜   r-   r-   r.   Ú#test_boolean_reduce_series_all_null.  s   
r   c                  C  sÈ   g d¢} g d¢}d g}| | | }dgt | ƒ dgt |ƒ  d gt |ƒ  }tj|t ¡ d�}tj|dd�}t ||¡ ddg}t	j
tjd	d
�� tj|t ¡ d� W d   ƒ d S 1 s]w   Y  d S )N)ÚtrueÚTRUEÚTruer?   rú  )ÚfalseÚFALSEÚFalseÚ0r@   TFrS   rI  r£  r  zFailed to parser«   )rz  r!   r­   r)   r…  ra   rb   r“   r¥   r&   r$   r*   )Útrue_stringsÚfalse_stringsÚnullsr   Úboolsr—   r˜   r-   r-   r.   Ú%test_from_sequence_of_strings_boolean:  s   (ÿ"ÿr¬  c                 C  sB   t jg | d�}| ¡ }t  |tjg tjd� g¡}t ||¡ d S r£   )	ra   r{   r  Úconcatr•   rb   r…  r“   rÂ   )r4   r   r˜   r—   r-   r-   r.   Ú%test_concat_empty_arrow_backed_seriesL  s   r®  r´   zstring[pyarrow]c                 C  s>   t  d ¡ ¡}tj|| d�}tjt|ƒ| d�}t ||¡ d S )Nzthe quick brown foxrS   )r)   rb   rü  ra   r{   r!   r“   rÂ   )r4   rü   r   r˜   r-   r-   r.   Útest_series_from_string_arrayT  s   r¯  c                      s   e Zd Z‡ fdd„Z‡  ZS )ÚOldArrowExtensionArrayc                   s   t ƒ  ¡ }| d¡|d< |S )Nr¤   Ú_data)rœ   Ú__getstate__Úpop)r}   ÚstaterŸ   r-   r.   r²  ^  s   
z#OldArrowExtensionArray.__getstate__)rŠ  r‹  rŒ  r²  r�  r-   r-   rŸ   r.   r°  ]  s    r°  c                  C  sV   t  dg¡} t| ƒ}t t |¡¡}t ||¡ |jt  	| ¡ks"J ‚t
|dƒr)J ‚d S )Nr:   r±  )r)   rb   r°  rï  rñ  rð  r“   r¥   r¤   Úchunked_arrayÚhasattr)rd   r˜   r—   r-   r-   r.   Ú#test_pickle_old_arrowextensionarrayd  s   r·  c                  C  sT   d} t t tj| ftjd�g¡ƒ}| ¡ }d|tj| ftjd�< |j|jks(J ‚d S )Nih6 rS   F)	r!   r)   rµ  r•   Úonesr…  r  Úzerosr¤   )ÚNrü   r˜   r-   r-   r.   Ú/test_setitem_boolean_replace_with_mask_segfaultm  s
   r»  zdata, arrow_dtyperM   rN   c                 C  s:   t |ƒ}tjt | ¡|d�}tj| |d�}t ||¡ d S r£   )r   ra   rb   r•   r“   r¥   )rd   rÝ  r4   r—   r˜   r-   r-   r.   Ú-test_conversion_large_dtypes_from_numpy_arrayv  s   r¼  c                  C  sl   t jdd d gitt ¡ ƒd�} t jdddgidd�}t j| |gdd�}t jdg d¢idd�}t ||¡ d S )	NrH   rS   r   r:   r»   T)Úignore_index)NNr   r:   )ra   r(  r   r)   Únullr­  r“   r+  )r,  Údf2r—   r˜   r-   r-   r.   Útest_concat_null_array„  s
   rÀ  c                 C  sN   t jg d¢t| ƒd�}| ¡ }t jg d¢tt ¡ ƒg d¢d�}t ||¡ d S )N©r:   r>   rô   rS   )rô   r>   r:   r:   r  g       @r!  rô   ©rå   rÞ   rà   rò   ú25%ú50%ú75%rñ   ©r4   r$  )ra   r{   r   Údescriber)   rŒ   r“   rÂ   ©rÄ   rd   r—   r˜   r-   r-   r.   Útest_describe_numeric_data�  s   
ýrÉ  c                 C  s^   t jtddƒt| ƒd�}| ¡ }t jdgt jg d¢| jd� ¡  tg d¢d�}t	 
||¡ d S )	Nr:   rF   rS   é	   )rG   r>   r:   rô   rG   rq   rÊ  ©r&  rÂ  rÆ  )ra   r{   r±  r   rÇ  Úto_timedeltar&  r  r’   r“   rÂ   rÈ  r-   r-   r.   Útest_describe_timedelta_dataš  s   ýrÍ  c                   sX   t jtddƒtˆ ƒd�}| ¡ }t jdg‡ fdd„dD ƒ tg d¢d	�}t ||¡ d S )
Nr:   rF   rS   rÊ  c                   s    g | ]}t j|ˆ jˆ jd �‘qS ))r›   r&  )ra   r  r›   r&  )rq  Úv©rÄ   r-   r.   Ú
<listcomp>®  s    ÿÿz/test_describe_datetime_data.<locals>.<listcomp>)rG   r:   rô   rG   rq   rÊ  )rå   rÞ   rò   rÃ  rÄ  rÅ  rñ   rÆ  )ra   r{   r±  r   rÇ  r’   r“   rÂ   rÈ  r-   rÏ  r.   Útest_describe_datetime_data§  s   
þÿù	rÑ  c                 C  s<   g d¢}t j|t| ƒd�}| d¡}|d }||ksJ ‚d S )NrÁ  rS   gš™™™™™¹?r   )ra   r{   r   rÄ  )rÄ   rd   r   r—   r˜   r-   r-   r.   Útest_quantile_temporal¸  s
   
rÒ  c                  C  sB   t jt d¡gt  ¡ d�} tj| t| jƒd�}t	|ƒdksJ ‚d S )Nz
2020-01-01r  rS   z+0    2020-01-01
dtype: date32[day][pyarrow])
r)   rb   r   Úfromisoformatr  ra   r{   r   rf   Úrepr)Úarrow_dtr   r-   r-   r.   Útest_date32_reprÄ  s   rÖ  c                  C  s€   t  dd g¡} t  dd g¡}t j| tt d¡ƒd�}t j|tt d¡ƒd�}|| }t jdd gtt d¡ƒd�}t 	||¡ d S )Nr:   r"  rS   r>   )
ra   Úto_datetimerÌ  r{   r   r)   r¯  r  r“   rÂ   )Údata_tsÚdata_tdÚser_tsÚser_tdr—   r˜   r-   r-   r.   Ú2test_duration_overflow_from_ndarray_containing_natË  s   rÜ  c                 C  sZ   t  | ¡}|dksJ ‚| jr|dv rtjjdd�}| |¡ |t jt| ƒdd�ks+J ‚d S )Nzunknown-array)ÚfloatingÚ
datetime64Útimedelta64zfin infer_dtype pd.NA is not ignored in these cases even with skipna=True in the list(data) check belowrš   Tr·   )r
   Úinfer_dtyper  r&   r'   r(   r+   r  )rd   r,   rr  r'   r-   r-   r.   Útest_infer_dtype_pyarrow_dtypeÖ  s   
ÿ
rá  c                 C  sz   d}| j }tj | ¡rtj||d� |¡g}ntj||| jd� |¡g}t	j
|| d�}t	tj|g| d�ƒ}t ||¡ d S )Nrô   rË  ©r&  r›   rS   r  )r&  r)   rT   r\   ra   r“  rŒ  r  r›   r!   rg   rb   r“   r¥   )rÄ   rÎ  r&  Úseqr—   r˜   r-   r-   r.   Útest_from_sequence_temporalä  s   rä  c                 C  s�   | j }tj | ¡rtjd|d� |¡}ntjd|| jd� |¡}t	tj
g d¢| d�ƒ}| ¡ }||d d …< t	tj
g d¢| d�ƒ}t ||¡ d S )Nr:   rË  râ  rÁ  r  )r:   r:   r:   )r&  r)   rT   r\   ra   r“  rŒ  r  r›   r!   rb   r  r“   r¥   ©rÄ   r&  rÎ  rü   r—   r˜   r-   r-   r.   Útest_setitem_temporalõ  s   ræ  c                 C  sZ   t tjg d¢| d�ƒ}| j}|tjd|d� |¡ }t tjg d¢| d�ƒ}t ||¡ d S )NrÁ  r  r:   rË  )r   r:   r>   )	r!   r)   rb   r&  ra   r“  rŒ  r“   r¥   )rÄ   r,   rü   r&  r—   r˜   r-   r-   r.   Útest_arithmetic_temporal  s
   rç  c                 C  sˆ   | j }tj | ¡rtjd|d� |¡}ntjd|| jd� |¡}t	tj
g d¢| d�ƒ}||k}t	tj
g d¢t ¡ d�ƒ}t ||¡ d S )Nr:   rË  râ  rÁ  r  )FTT)r&  r)   rT   r\   ra   r“  rŒ  r  r›   r!   rb   r…  r“   r¥   rå  r-   r-   r.   Útest_comparison_temporal  s   rè  c                 C  s    t tjg d¢| d�ƒ}|d }tj | ¡r*tjd| jd� | j¡}t	|tjƒs)J ‚ntj
d| j| jd� | j¡}t	|tj
ƒs@J ‚|j|jksHJ ‚||ksNJ ‚d S )NrÁ  r  r:   r>   rË  râ  )r!   r)   rb   rT   r\   ra   r“  r&  rŒ  r¦   r  r›   ©rÄ   rü   r—   r˜   r-   r-   r.   Útest_getitem_temporal&  s   ÿrê  c                 C  s¼   t tjdd g| d�ƒ}t|ƒ}tj | ¡r/tjd| jd� 	| j¡tj
g}t|d tjƒs.J ‚ntjd| j| jd� 	| j¡tj
g}t|d tjƒsJJ ‚|d j|d jksVJ ‚||ks\J ‚d S )Nr:   r  rË  r   râ  )r!   r)   rb   r  rT   r\   ra   r“  r&  rŒ  r¦  r¦   r  r›   ré  r-   r-   r.   Útest_iter_temporal9  s   þþrë  c                 C  sR   t j| d d… g d¢d�}|jdd� ¡ }t jddgdd	d
gd�}t ||¡ d S )Nrô   )rH   rH   rI   rÈ  r   )Úlevelr>   r:   r»   rH   rI   rÆ  )ra   r{   ÚgroupbyÚsizer“   rÂ   r™  r-   r-   r.   Ú'test_groupby_series_size_returns_pa_intP  s   rï  c                 C  s  t tjdd g| d�ƒ}|j|d�}tj | ¡r$tjd| jd� 	| j¡}ntj
d| j| jd� 	| j¡}|tksAtj | ¡r`| jd ur`|tkrItj}ntj}tj||gtd�}|d j|jks_J ‚n"|  ¡  d| j¡}| ¡ }t ||g¡}t |d ¡d | jks‚J ‚t ||¡ d S )Nr:   r  rS   rË  râ  r   Únat)r!   r)   rb   r‘   rT   r\   ra   r“  r&  rŒ  r  r›   r’   r[   r¦  r  r•   Úto_pandas_dtyperf   Údatetime_datar“   r”   )rÄ   r4   rü   r—   r¾  rF  r˜   r-   r-   r.   Útest_to_numpy_temporalX  s    ró  c                 C  s\   t  ddg| | dœ¡}| d¡ ¡ }t jddggt jdgdd�ddgdd�}t ||¡ d S )	Nr:   )rl   rm   rn   rl   r  rm   rn   r»   )r$  rQ  r4   )ra   r(  rí  rå   ÚIndexr“   r+  )rh   r,  r—   r˜   r-   r-   r.   Ú%test_groupby_count_return_arrow_dtypeu  s   ürõ  c                  C  sD   t jddgddggttjt ¡ dd�ƒd�} | jj}|tks J ‚d S )Nr:   r>   rô   r5   )Ú	list_sizerS   )	ra   r{   r   r)   rá  r  r4   rf   r  )r   r—   r-   r-   r.   Útest_fixed_size_list�  s
   "ÿr÷  c                  C  s@   t jt jddd�dgttdƒƒd�} t| ƒ}d}||ksJ ‚d S )NÚ2012rô   )r4  rþ  rk  rV  z#     col
0  15340
1  15341
2  15342)ra   r(  Úperiod_ranger   r"   rÔ  )r,  r—   r˜   r-   r-   r.   Ú'test_arrowextensiondtype_dataframe_reprŠ  s   
ýrú  c                  C  sB   t jdd gdd�} | jd dd�}t jdd gdd�}t ||¡ d S )Nr>   r»   rS   rô   )r  é   )ra   r{   Úpowr“   rÂ   )Úkr—   r˜   r-   r-   r.   Útest_pow_missing_operand˜  s   rþ  c                 C  sh   t jd dgt| ƒd�}t  tjddgd| j› d�d�¡}| |¡}t jddgt| ƒd�}t ||¡ d S )Nr>   rS   r:   rô   zm8[rO  )	ra   r{   r   r•   rb   r&  r  r“   rÂ   )rÄ   Úser1rf  r—   r˜   r-   r-   r.   Útest_duration_fillna_numpy   s
   "
r   c                  C  s`   t jdgdd�} t jd gdd�}tjtjjdd�� | |k  W d   ƒ d S 1 s)w   Y  d S )Nl            rö   rS   r»   zInteger valuer«   )ra   r{   r&   r$   r)   r
   r*   r*  r-   r-   r.   Ú+test_comparison_not_propagating_arrow_errorª  s
   
"ÿr  c                  C  s‚   t  t  dg¡ ¡ t  dg¡ ¡ g¡} t t| ƒ¡}| ¡ \}}tjddgtj	d�}t 
t|  ¡ ƒ¡}t ||¡ t ||¡ d S )NrH   rI   r   r:   rS   )r)   rµ  rb   Údictionary_encodera   r{   r!   Ú	factorizer•   Úintprô  r¨   r“   r”   Úassert_index_equal)rµ   r   Úres_indicesÚres_uniquesÚexp_indiciesÚexp_uniquesr-   r-   r.   Ú!test_factorize_chunked_dictionary²  s   ÿr
  c                  C  s’   t  t g d¢¡¡ ¡ t  t g d¢¡¡ ¡ g} t tt  | ¡ƒ¡}| d¡}tj	g d¢t
t  ¡ ƒd�}tjg d¢tj|d�d�}t ||¡ d S )N)rH   r‡   rj   rH   )rH   rˆ  rj   Úcategory)rH   r‡   rj   rˆ  rS   )rH   r‡   rj   rH   rH   rˆ  rj   )Ú
categories)r)   rb   r•   r  ra   r{   r!   rµ  rÁ   rô  r   r´   ÚCategoricalDtyper“   rÂ   )Úarrsr   r—   r  r˜   r-   r-   r.   Ú"test_dictionary_astype_categorical¿  s   þ

þr  c                  C  sH   t jdgdd�} t jdgdd�}t jdgdd�}| | }t ||¡ d S )Niùÿÿÿr»   rS   r5   r;   r’  )rH   rI   r˜   r—   r-   r-   r.   Útest_arrow_floordivÏ  s
   r  c                  C  s8   t jdgdd�} t jdgdd�}| d }t ||¡ d S )Nl     ^ \K r»   rS   l    \Ëp/i@B r’  )rH   r˜   r—   r-   r-   r.   Ú test_arrow_floordiv_large_valuesØ  s   r  r»   rö   c                 C  s(   t jdg| d�}|d }t ||¡ d S )Nì   ÿÿÿÿrS   r:   r’  )r4   rH   r—   r-   r-   r.   Ú)test_arrow_floordiv_large_integral_resultà  s   r  c                 C  s@   t | ƒ}tjdg|d�}|d }tjdg|d�}t ||¡ d S )NiéÿÿÿrS   é   r<   )r   ra   r{   r“   rÂ   )rÄ   r4   rH   r—   r˜   r-   r-   r.   Ú"test_arrow_floordiv_larger_divisorè  s
   r  c                 C  sž   t  |  ¡ ¡j}tj|gt| ƒd�}tjt	j
jdd�� |d  W d   ƒ n1 s*w   Y  tjt	j
jdd�� |d  W d   ƒ d S 1 sHw   Y  d S )NrS   zoverflow|not in ranger«   r<   zdivide by zeror   )r•   Úiinforñ  rò   ra   r{   r   r&   r$   r)   r
   r*   )rÄ   Ú	min_valuerH   r-   r-   r.   Ú$test_arrow_floordiv_integral_invalidò  s   
ÿ
"ÿr  c                 C  s<   t jdg| d�}|d }t jtdƒg| d�}t ||¡ d S )Nr>   rS   r   Úinf)ra   r{   r  r“   rÂ   )r4   rH   r—   r˜   r-   r-   r.   Ú&test_arrow_floordiv_floating_0_divisorý  s   r  )rŒ   ru  r—  c                 C  s>   t jdd gdd�}| | ¡}t jdd g| d�}t ||¡ d S )Nr:   r»   rS   rû  r%  r-   r-   r.   Ú(test_astype_int_with_null_to_numpy_dtype  s   
r  c                 C  sP   t  |  ¡ ¡j}t| ƒ}tj|g|d�}tjdg|d�}|| }t ||¡ d S )NrS   r:   )	r•   r  rñ  rñ   r   ra   r{   r“   rÂ   )rÄ   Ú	max_valuer4   rH   rI   r—   r-   r-   r.   Ú)test_arrow_integral_floordiv_large_values  s   r  c                 C  sH   t jdg| d�}t jdg| d�}t jdgdd�}|| }t ||¡ d S )Nr   rS   r  rõ   r’  ©r4   rH   rI   r˜   r—   r-   r-   r.   Ú&test_arrow_true_division_large_divisor  ó
   r  c                 C  sH   t jdg| d�}t jdg| d�}t jdg| d�}|| }t ||¡ d S )Nr   rS   r  r’  r  r-   r-   r.   Ú'test_arrow_floor_division_large_divisor$  r   r!  c                  C  sD   g d¢} t j| dd�}t  ttjt  | ¡dd�ƒ¡}t ||¡ d S )N)ú2020-01-01 04:30:00z2020-01-02 00:00:00z2020-01-03 00:00:00útimestamp[ns][pyarrow]rS   T©Úfrom_pandas)ra   r{   r!   r)   rb   r×  r“   rÂ   )Ústring_datesr—   r˜   r-   r-   r.   Ú$test_string_to_datetime_parsing_cast.  s   ÿr'  z0pairwise_diff_checked not implemented in pyarrowc                 C  sl   | j js4t | ¡}t d|j › d�¡}tjt|d�� t | ¡ 	¡  W d   ƒ d S 1 s-w   Y  d S d S )NzCannot interpolate with z dtyper«   )
r4   rÿ   ra   r{   ÚreÚescaper&   r$   rÖ   Úinterpolate)rd   r   r	  r-   r-   r.   Útest_interpolate_not_numeric8  s   
"ÿýr+  c               	   C  sH   dg} t j| dd�}t  ttjtddddƒgdd	�ƒ¡}t ||¡ d S )
Nz11:41:43.076160ztime64[us][pyarrow]rS   rB  é)   é+   i€) Tr$  )ra   r{   r!   r)   rb   r   r“   rÂ   )Ústring_timesr—   r˜   r-   r-   r.   Ú test_string_to_time_parsing_castC  s   ÿr/  c                  C  sB   t jg d¢dd�} |  d¡}t jddtjgdd�}t ||¡ d S )N©r¹   é(   Nrÿ  rS   rŒ   r¹   r1  )ra   r{   rÁ   r•   r–   r“   rÂ   rü  r-   r-   r.   Útest_to_numpy_floatM  s   
r2  c                  C  s:   t jdgdd�} | jtjd�}t dg¡}t ||¡ d S )Nr"  r#  rS   l    P‘)Æ#-/ )ra   r{   r‘   r•   r  rb   r“   r”   rü  r-   r-   r.   Útest_to_numpy_timestamp_to_intU  s   r3  c                  C  sJ   t jg d¢dd�} | jdd„ dd�}t jddtjgd	d�}t ||¡ d S )
Nr0  r»   rS   c                 S  s   dS )Né*   r-   r†   r-   r-   r.   rˆ   _  r‰   z,test_map_numeric_na_action.<locals>.<lambda>r‚   rŠ   g      E@rŒ   )ra   r{   r�   r•   r–   r“   rÂ   rü  r-   r-   r.   Útest_map_numeric_na_action]  s   r5  (  r¥  Ú
__future__r   r   r   r   r   Údecimalr   Úior   r	   r„  rï  r(  Únumpyr•   r&   Úpandas._libsr
   Úpandas._libs.tslibsr   Úpandas.compatr   r   r   r   r   r   r   r   r   Úpandas.core.dtypes.dtypesr   r   Úpandasra   Úpandas._testingÚ_testingr“   Úpandas.api.extensionsr   Úpandas.api.typesr   r   r   r   r   r   r   Úpandas.tests.extensionr   Úimportorskipr)   Úpandas.core.arrays.arrow.arrayr!   Ú(pandas.core.arrays.arrow.extension_typesr"   r/   ÚfixtureÚALL_PYARROW_DTYPESrÈ   r4   rd   rh   ri   ro   rs   ru   ry   ÚExtensionTestsrz   r�  r'   r�  ÚALL_INT_PYARROW_DTYPESr¬  r­  r°  r³  r¼  r¾  rÏ  r×  rÙ  r¹  ÚbytesÚlarge_binaryÚlarge_stringrá  r  r  Ú
large_listÚmap_r´   Ústructr}  Údictr,  rß  rå  rç  ré  rê  rì  rí  rö  rù  rý  r  r  r  r–   r
  r  r  r  r  r   r#  r&  r)  r/  r1  r6  rA  rB  rI  rJ  rR  rS  ÚcompilerY  r_  rl  rm  ro  rs  ry  r-  r€  r„  r†  rŠ  r‹  Úskipifr–  r—  r™  r(   r"  rž  rŸ  r§  r¬  r¿  rÆ  rÇ  rÏ  rÕ  rØ  rß  râ  rå  rê  rì  rð  rò  rô  rú  r   r  r  r  r  r  r!  r#  r7  r=  rA  rF  rJ  rN  rP  rT  rX  r]  r_  rg  ri  rm  rw  rz  r|  r}  r‚  r  r†  rˆ  rŠ  r‹  r�  r”  r–  rš  rŸ  r   r¬  r®  r¯  r°  r·  r»  r¼  rÀ  ÚFLOAT_PYARROW_DTYPESrÉ  ÚTIMEDELTA_PYARROW_DTYPESrÍ  ÚDATETIME_PYARROW_DTYPESrÑ  rÒ  rÖ  rÜ  rá  rä  ræ  rç  rè  rê  rë  rï  rÔ  r’   ró  rõ  r÷  rú  rþ  r   r  r
  r  r  r  r  ÚSIGNED_INT_PYARROW_DTYPESr  r  ÚFLOAT_PYARROW_DTYPES_STR_REPRr  r  r  r  r!  r'  r+  r/  r2  r3  r5  r-   r-   r-   r.   Ú<module>   sâ   ,$	


;


:


      > "
	ÿIý



 ÷þ
		


ÿ
	ûþ

øþ

	 þ
ýþ
úþ
òü
*þ
ÿ




ûþ

þ
üþ
	ýþîþ





úþúþ

þþþþ
þþ("		



ïþ	ÿ

þþ	üþ			þþ	ÿ	ÿÿÿ	ÿÿÿÿ				

		
ÿ
