Ë
    *�£jT  ã                  óž  — d dl mZ d dlZd dlZd dlmZmZ d dlZd dl	m
Z
mZ d dlmZmZm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 d dlmZ d dlmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z* d dl+m,Z, er
d dl-Z.d dl/m0Z1 er"d dl2m3Z3m4Z4 d dl5m6Z6m7Z7m8Z8m9Z9m:Z: d dl;m<Z< d dl=m>Z> dd„Z?d„ Z@ ed«       G d„ de,ee)«      «       ZAy)é    )ÚannotationsN)ÚTYPE_CHECKINGÚSelf)ÚlibÚmissing)ÚHAS_PYARROWÚPYARROW_MIN_VERSIONÚpa_version_under16p0)Ú
set_module)Úvalidate_na_arg)Ú	is_scalarÚpandas_dtype)Úis_array_like)Úisna)ÚArrowStringArrayMixin)ÚArrowExtensionArray)ÚBooleanDtype)ÚFloat64Dtype)Ú
Int64Dtype)ÚNumericDtype)ÚBaseStringArrayÚStringDtype)ÚObjectStringArrayMixin)ÚCallableÚSequence)Ú	ArrayLikeÚDtypeÚNpDtypeÚScalarÚnpt)ÚExtensionDtype)ÚSeriesc                 ó:   — t         sdt        › d�} t        | «      ‚y )Nz	pyarrow>=z4 is required for PyArrow backed ArrowExtensionArray.)r   r	   ÚImportError)Úmsgs    úAC:\FundamentalWorkbench\vendor\pandas\core\arrays\string_arrow.pyÚ_check_pyarrow_availabler'   C   s/   € ÝàÔ+Ð,ð -*ð *ð 	ô ˜#ÓÐð ó    c                óR   — t          xr t        j                  j                  | «      S ©N)r
   ÚpaÚtypesÚis_string_view)Útyps    r&   Ú_is_string_viewr/   L   s   € Ü#Ð#ÒD¬¯©×(?Ñ(?ÀÓ(DÐDr(   zpandas.arraysc                  óF  ‡ — e Zd ZU dZded<   ddœd(ˆ fd„Zd„ Zed)d*ˆ fd„«       Ze	 d+	 	 	 	 	 d,ˆ fd
„«       Z	d-d„Z
edd	dœ	 	 	 	 	 d.d„«       Zed	dœ	 	 	 	 	 d/d„«       Zed0d„«       Zd1ˆ fd„Zej"                  dfd„Zˆ fd„Zd2d„Zd3d4ˆ fd„Zej.                  Zej0                  Zej2                  Zej4                  Zej6                  Zej8                  Zej:                  Zej<                  Zej>                  Ze jB                  Z!ejD                  Z"ejF                  Z#ejH                  Z$ejJ                  Z%ejL                  Z&ejN                  Z'ejP                  Z(ejR                  Z)ejT                  Z*ejV                  Z+ejX                  Z,ejZ                  Z-ej\                  Z.ej^                  Z/ej`                  Z0ejb                  Z1ejd                  Z2ejf                  Z3ejh                  Z4e5d5d„«       Z6e5	 	 	 	 	 	 	 	 d6d„«       Z7ddej"                  df	 	 	 	 	 d7ˆ fd„Z8ddej"                  f	 	 	 	 	 	 	 d8ˆ fd„Z9ddej"                  f	 	 	 	 	 	 	 d8ˆ fd„Z:	 	 	 	 d9	 	 	 	 	 	 	 	 	 	 	 d:ˆ fd„Z;d;ˆ fd„Z<d<d=ˆ fd„Z=d>d?d „Z>d!„ Z?d"„ Z@dd	d#œ	 	 	 	 	 d@d$„ZAd3dAˆ fd%„ZBˆ fd&„ZCdBd'„ZDˆ xZES )CÚArrowStringArrayaÊ  
    Extension array for string data in a ``pyarrow.ChunkedArray``.

    .. warning::

       ArrowStringArray is considered experimental. The implementation and
       parts of the API may change without warning.

    Parameters
    ----------
    values : pyarrow.Array or pyarrow.ChunkedArray
        The array of data.
    dtype : StringDtype
        The dtype for the array.

    Attributes
    ----------
    None

    Methods
    -------
    None

    See Also
    --------
    :func:`array`
        The recommended function for creating an ArrowStringArray.
    Series.str
        The string methods are available on Series backed by
        an ArrowStringArray.

    Notes
    -----
    ArrowStringArray returns a BooleanArray for comparison methods.

    Examples
    --------
    >>> pd.array(["This is", "some text", None, "data."], dtype="string[pyarrow]")
    <ArrowStringArray>
    ['This is', 'some text', <NA>, 'data.']
    Length: 4, dtype: string
    r   Ú_dtypeN©Údtypec               óz  •— t        «        t        |t        j                  t        j                  f«      �rt        j
                  j                  |j                  «      sÃt        |j                  «      s®t        j
                  j                  |j                  «      r­t        j
                  j                  |j                  j                  «      sRt        j
                  j                  |j                  j                  «      st        |j                  j                  «      r(t        j                  |t        j                  «       «      }t        ‰| �A  |«       |€t#        dt$        j&                  ¬«      }|| _        t        j
                  j                  | j*                  j                  «      st-        d«      ‚y )NÚpyarrow)ÚstorageÚna_valuezHArrowStringArray requires a PyArrow (chunked) array of large_string type)r'   Ú
isinstancer+   ÚArrayÚChunkedArrayr,   Ú	is_stringÚtyper/   Úis_dictionaryÚ
value_typeÚis_large_stringÚpcÚcastÚlarge_stringÚsuperÚ__init__r   Ú
libmissingÚNAr2   Ú	_pa_arrayÚ
ValueError)ÚselfÚvaluesr4   Ú	__class__s      €r&   rE   zArrowStringArray.__init__†   s  ø€ Ü Ô"Ü�fœrŸx™x¬¯©Ð9Õ:Ü�H‰H×Ñ˜vŸ{™{Ô+Ü˜vŸ{™{Ô+ä—‘×&Ñ& v§{¡{Ô3ä—H‘H×&Ñ& v§{¡{×'=Ñ'=Ô>Ü—x‘x×/Ñ/°·±×0FÑ0FÔGÜ& v§{¡{×'=Ñ'=Ô>ô —W‘W˜V¤R§_¡_Ó%6Ó7ˆFä‰Ñ˜Ô àˆ=Ü¨	¼J¿M¹MÔJˆEØˆŒä�x‰x×'Ñ'¨¯©×(;Ñ(;Ô<Üð$óð ð =r(   c                ó<   —  t        | «      || j                  ¬«      S )zq
        Construct from the pyarrow array result of an operation, retaining
        self.dtype.na_value.
        r3   )r=   r4   )rJ   Úpa_arrays     r&   Ú_from_pyarrow_arrayz$ArrowStringArray._from_pyarrow_array¢   s   € ð
 Œt�D‹z˜(¨$¯*©*Ô5Ð5r(   c                óÎ   •— t         ‰| �  ||«      }t        j                  j	                  |j
                  «      r*|€(t        j                  |t        j                  «       «      }|S r*   )	rD   Ú_box_pa_scalarr+   r,   r<   r=   rA   rB   rC   )ÚclsÚvalueÚpa_typeÚ	pa_scalarrL   s       €r&   rQ   zArrowStringArray._box_pa_scalar©   sK   ø€ ä‘GÑ*¨5°'Ó:ˆ	Ü�8‰8×Ñ˜iŸn™nÔ-°'°/ÜŸ™ 	¬2¯?©?Ó+<Ó=ˆIØÐr(   Fc                óÎ   •— t         ‰| �  ||«      }t        j                  j	                  |j
                  «      r*|€(t        j                  |t        j                  «       «      }|S r*   )	rD   Ú_box_pa_arrayr+   r,   r<   r=   rA   rB   rC   )rR   rS   rT   ÚcopyrN   rL   s        €r&   rW   zArrowStringArray._box_pa_array°   sL   ø€ ô ‘7Ñ(¨°Ó8ˆÜ�8‰8×Ñ˜hŸm™mÔ,°°Ü—w‘w˜x¬¯©Ó):Ó;ˆHØˆr(   c                ó,   — t        | j                  «      S )z]
        Length of this array.

        Returns
        -------
        length : int
        )ÚlenrH   ©rJ   s    r&   Ú__len__zArrowStringArray.__len__¹   s   € ô �4—>‘>Ó"Ð"r(   ©r4   rX   c               óN  — ddl m} t        «        |rAt        |t        «      r|dk(  s,t        |«      }t        |t        «      r|j                  dk(  sJ ‚t        ||«      r]|j                  }|j                  }t        j                  ||dd¬«      }t        j                  ||t        j                  «       ¬«      }�nàt        |t        «      �r;|j                   j"                  }t        j$                  j'                  |«      s]t        j$                  j)                  |«      s>t        j$                  j+                  |«      st        j$                  j-                  |«      rgt/        j0                  |j                   t        j                  «       «      }t        j$                  j-                  |«      rìt/        j2                  |«      }nÖt        j                  ||¬«      }t        j                  |t        j                  «       d	¬
«      }n”t        |t        j4                  t        j6                  f«      r)t/        j0                  |t        j                  «       «      }nAt        j                  ||¬«      }t        j                  |t        j                  «       d	¬
«      } | ||¬«      S )Nr   )ÚBaseMaskedArrayÚstringr6   F)rX   Úconvert_na_valueÚskipna)Úmaskr=   ©rX   T)r=   Úfrom_pandasr3   )Úpandas.core.arrays.maskedr_   r'   r9   Ústrr   r   r7   Ú_maskÚ_datar   Úensure_string_arrayr+   ÚarrayrC   r   rH   r=   r,   Ú
is_integerr@   r<   Ú
is_booleanrA   rB   Úutf8_capitalizer:   r;   )	rR   Úscalarsr4   rX   r_   Ú	na_valuesÚresultÚpa_arrrT   s	            r&   Ú_from_sequencezArrowStringArray._from_sequenceÃ   sÑ  € õ 	>ä Ô"áœ* U¬CÔ0°U¸hÒ5FÜ  Ó'ˆEÜ˜e¤[Ô1°e·m±mÀyÒ6PÐPÐPä�g˜Ô/ð  Ÿ™ˆIØ—]‘]ˆFÜ×,Ñ,Ø˜T°EÀ%ôˆFô —X‘X˜f¨9¼2¿?¹?Ó;LÔMŠFÜ˜Ô!4Õ5Ø×'Ñ'×,Ñ,ˆGô —‘×#Ñ# GÔ,Ü—8‘8×+Ñ+¨GÔ4Ü—8‘8×%Ñ% gÔ.Ü—8‘8×&Ñ& wÔ/äŸ™ ×!2Ñ!2´B·O±OÓ4EÓF�Ü—8‘8×&Ñ& wÔ/Ü×/Ñ/°Ó7‘Fô ×0Ñ0°¸tÔD�ÜŸ™ &¬r¯©Ó/@ÈdÔS‘Ü˜¤"§(¡(¬B¯O©OÐ!<Ô=Ü—W‘W˜W¤b§o¡oÓ&7Ó8‰Fô ×,Ñ,¨W¸4Ô@ˆFÜ—X‘X˜f¬2¯?©?Ó+<È$ÔOˆFá�6 Ô'Ð'r(   rd   c               ó*   — | j                  |||¬«      S )Nr]   )rs   )rR   Ústringsr4   rX   s       r&   Ú_from_sequence_of_stringsz*ArrowStringArray._from_sequence_of_stringsõ   s   € ð ×!Ñ! '°¸TÐ!ÓBÐBr(   c                ó   — | j                   S )z3
        An instance of 'string[pyarrow]'.
        )r2   r[   s    r&   r4   zArrowStringArray.dtypeû   s   € ð
 �{‰{Ðr(   c                óB  •— | j                   j                  t        j                  u r"|t        j                  u rt        j
                  }t        |t        «      s7|t        j
                  ur%t        d|› dt        |«      j                  › d�«      ‚t        ‰| �1  ||«      S )NúInvalid value 'úC' for dtype 'str'. Value should be a string or missing value, got 'ú
' instead.)r4   r8   ÚnpÚnanrF   rG   r9   rg   Ú	TypeErrorr=   Ú__name__rD   Úinsert)rJ   ÚlocÚitemrL   s      €r&   r€   zArrowStringArray.insert  s…   ø€ Ø�:‰:×Ñ¤"§&¡&Ñ(¨T´R·V±V©^Ü—=‘=ˆDÜ˜$¤Ô$¨´Z·]±]Ñ)BÜØ! $ ð (1Ü15°d³×1DÑ1DÐ0EÀZðQóð ô ‰w‰~˜c 4Ó(Ð(r(   c                ó´  — t        |d¬«       | j                  j                  t        j                  u r_|t
        j                  u st        |«      r!|j                  d«      }|j                  «       S |j                  |«      }|j                  «       S |t
        j                  urt        |«      s|j                  |«      }t        «       j                  |«      S )NÚna)ÚnameF)r   r4   r8   r|   r}   r   Ú
no_defaultr   Ú	fill_nullÚto_numpyr   Ú__from_arrow__)rJ   rK   r„   Úmethod_names       r&   Ú_convert_bool_resultz%ArrowStringArray._convert_bool_result  s§   € Ü˜ Õ&Ø�:‰:×Ñ¤"§&¡&Ñ(Ø”S—^‘^Ñ#¤t¨B¤xà×)Ñ)¨%Ó0�ð —?‘?Ó$Ð$ð  ×)Ñ)¨"Ó-�Ø—?‘?Ó$Ð$Ø”s—~‘~Ñ%¬d°2¬hØ×%Ñ% bÓ)ˆFÜ‹~×,Ñ,¨VÓ4Ð4r(   c                óÚ  •— t        |«      rCt        |«      rd}nÃt        |t        «      s³t	        d|› dt        |«      j                  › d�«      ‚t        |t        | «      «      rnxt        |«      st        j                  |t        ¬«      }nt        j                  |«      }t        |«      r1|j                  dk(  rt        j                  |d¬«      st	        d	«      ‚t        ‰| �A  |«      S )
z-Maybe convert value to be pyarrow compatible.Nry   rz   r{   r3   é   T)rb   z]Invalid value for dtype 'str'. Value should be a string or missing value (or array of those).)r   r   r9   rg   r~   r=   r   r   r|   ÚasarrayÚobjectrZ   Úndimr   Úis_string_arrayrD   Ú_maybe_convert_setitem_value)rJ   rS   rL   s     €r&   r’   z-ArrowStringArray._maybe_convert_setitem_value  sÑ   ø€ ä�UÔÜ�EŒ{Ø‘Ü ¤sÔ+ÜØ% e Wð -5Ü59¸%³[×5IÑ5IÐ4JÈ*ðVóð ô ˜œt D›zÔ*Øä  Ô'ÜŸ
™
 5´Ô7‘äŸ
™
 5Ó)�Ü�5ŒzØ—
‘
˜a’¤C×$7Ñ$7¸ÀdÕ$KäðCóð ô ‰wÑ3°EÓ:Ð:r(   c                óN  — |D �cg c]  }t        j                  |d¬«      ‘Œ c}D �cg c]Y  }|j                  t        j                  «       t        j                  «       t        j
                  «       fv r|j                  «       ‘Œ[ }}|s$t        j                  t        | «      t        ¬«      S t        j                  | j                  t        j                  || j                  j                  ¬«      ¬«      }t        j                  |t        j                  ¬«      S c c}w c c}w )NT)re   r3   )r=   )Ú	value_set)r+   Úscalarr=   r`   ÚnullrC   Úas_pyr|   ÚzerosrZ   ÚboolrA   Úis_inrH   rk   Úbool_)rJ   rK   rS   rU   r”   rq   s         r&   ÚisinzArrowStringArray.isin3  sÕ   € ñ OUÓUÉfÀUœbŸi™i¨¸4Ö@ÈfÒUó
áU�	Ø�~‰~¤"§)¡)£+¬r¯w©w«y¼"¿/¹/Ó:KÐ!LÑLð �O‰OÕØUð 	ð 
ñ Ü—8‘8œC ›I¬TÔ2Ð2ä—‘Ø�N‰N¤b§h¡h¨y¸t¿~¹~×?RÑ?RÔ&Sô
ˆô
 �x‰x˜¤b§h¡hÔ/Ð/ùò Vùò
s   …D¨AD"Tc                óò  •— t        |«      }|| j                  k(  r|r| j                  «       S | S t        |t        «      rI| j
                  j                  t        j                  |j                  «      «      }|j                  |«      S t        |t        j                  «      rEt        j                  |t        j                  «      r!| j                  |t        j                  ¬«      S t         ‰| �E  ||¬«      S )N)r4   r8   rd   )r   r4   rX   r9   r   rH   rB   r+   Úfrom_numpy_dtypeÚnumpy_dtyper‰   r|   Ú
issubdtypeÚfloatingrˆ   r}   rD   Úastype)rJ   r4   rX   ÚdatarL   s       €r&   r¢   zArrowStringArray.astypeE  s¶   ø€ Ü˜UÓ#ˆà�D—J‘JÒÙØ—y‘y“{Ð"ØˆKÜ˜œ|Ô,Ø—>‘>×&Ñ&¤r×':Ñ':¸5×;LÑ;LÓ'MÓNˆDØ×'Ñ'¨Ó-Ð-Ü˜œrŸx™xÔ(¬R¯]©]¸5Ä"Ç+Á+Ô-NØ—=‘= u´r·v±v�=Ó>Ð>ä‰w‰~˜e¨$ˆ~Ó/Ð/r(   c                óž   — t        | t        j                  «      xr2 | j                  t        j                  t        j
                  z   z  dk7  S )Nr   )r9   ÚreÚPatternÚflagsÚ
IGNORECASEÚUNICODE)Úpats    r&   Ú_is_re_pattern_with_flagsz*ArrowStringArray._is_re_pattern_with_flagsv  s>   € ô
 �sœBŸJ™JÓ'ò AØ—‘œrŸ}™}¬r¯z©zÑ9Ð:Ñ:¸qÑ@ð	
r(   c                ó†  — t        | t        j                  «      rV| j                  }| j                  }|t        j
                  z  rd}|t        j
                   z  }|t        j                   z  }n| }|j                  d«      r:t        |«      t        |d d j                  d«      «      z
  dz   dz  dk(  r|d d dz   }|||fS )	NFz\ZéÿÿÿÿÚ\r�   é   éþÿÿÿz\z)
r9   r¥   r¦   Úpatternr§   r¨   r©   ÚendswithrZ   Úrstrip)rª   Úcaser§   r±   s       r&   Ú_preprocess_re_patternz'ArrowStringArray._preprocess_re_pattern  s¼   € ô �cœ2Ÿ:™:Ô&Ø—k‘kˆGà—I‘IˆEà”r—}‘}Ò$Ø�Ø¤§¡ Ñ.�ð œRŸZ™Z˜KÑ'‰EàˆGð ×Ñ˜UÔ#ô �W“¤ G¨C¨R L×$7Ñ$7¸Ó$=Ó >Ñ>ÀÑBÀaÑGÈ1ÒLà˜c˜r�l UÑ*ˆGà˜˜eÐ#Ð#r(   r   c                óØ   •— |s$| j                  |«      s|r$| j                  |«      rt        ‰| �  |||||«      S | j	                  |||«      \  }}}t        j                  | |||||«      S r*   )r«   Ú_has_unsupported_regexrD   Ú_str_containsrµ   r   )rJ   rª   r´   r§   r„   ÚregexrL   s         €r&   r¸   zArrowStringArray._str_contains›  st   ø€ ñ Ø×-Ñ-¨cÔ2Ù˜$×5Ñ5°cÔ:ä‘7Ñ(¨¨d°E¸2¸uÓEÐEà×6Ñ6°s¸DÀ%ÓHÑˆˆT�5Ü$×2Ñ2°4¸¸dÀEÈ2ÈuÓUÐUr(   c                óÐ   •— |s"| j                  |«      s| j                  |«      rt        ‰| �  ||||«      S | j	                  |||«      \  }}}t        j                  | ||||«      S r*   )r«   r·   rD   Ú
_str_matchrµ   r   ©rJ   rª   r´   r§   r„   rL   s        €r&   r»   zArrowStringArray._str_match­  sn   ø€ ñ Ø×-Ñ-¨cÔ2Ø×*Ñ*¨3Ô/ä‘7Ñ% c¨4°¸Ó;Ð;à×6Ñ6°s¸DÀ%ÓHÑˆˆT�5Ü$×/Ñ/°°c¸4ÀÈÓKÐKr(   c                óÐ   •— |s"| j                  |«      s| j                  |«      rt        ‰| �  ||||«      S | j	                  |||«      \  }}}t        j                  | ||||«      S r*   )r«   r·   rD   Ú_str_fullmatchrµ   r   r¼   s        €r&   r¾   zArrowStringArray._str_fullmatch¾  sn   ø€ ñ Ø×-Ñ-¨cÔ2Ø×*Ñ*¨3Ô/ä‘7Ñ)¨#¨t°U¸BÓ?Ð?à×6Ñ6°s¸DÀ%ÓHÑˆˆT�5Ü$×3Ñ3°D¸#¸tÀUÈBÓOÐOr(   c           	     ó4  •— t        |t        j                  «      s6t        |«      s+|r)|s't        |t        «      rd|v s|r%| j                  |«      rt        ‰| �  ||||||«      S |r| j                  |||«      \  }}}t        j                  | ||||||«      S )Nz\g<)
r9   r¥   r¦   Úcallablerg   r·   rD   Ú_str_replacerµ   r   )rJ   rª   ÚreplÚnr´   r§   r¹   rL   s          €r&   rÁ   zArrowStringArray._str_replaceÏ  sœ   ø€ ô �sœBŸJ™JÔ'Ü˜Œ~ÙÙô ˜4¤Ô%¨&°D©.á˜$×5Ñ5°cÔ:ä‘7Ñ'¨¨T°1°d¸EÀ5ÓIÐIáØ#×:Ñ:¸3ÀÀeÓLÑˆC��uä$×1Ñ1Ø�#�t˜Q  e¨Uó
ð 	
r(   c                óp   •— t        |t        «      st        ‰| �  |«      S t	        j                  | |¬«      S )N)Úrepeats)r9   ÚintrD   Ú_str_repeatr   )rJ   rÅ   rL   s     €r&   rÇ   zArrowStringArray._str_repeatì  s0   ø€ Ü˜'¤3Ô'Ü‘7Ñ& wÓ/Ð/ä&×2Ñ2°4ÀÔIÐIr(   c                óÚ   •— |s| j                  |«      rt        ‰| �	  ||«      S | j                  |dd«      \  }}}t	        j
                  | j                  |«      }| j                  |«      S )NTr   )r·   rD   Ú
_str_countrµ   rA   Úcount_substring_regexrH   Ú_convert_int_result)rJ   rª   r§   Ú_rq   rL   s        €r&   rÉ   zArrowStringArray._str_countò  sf   ø€ Ù�D×/Ñ/°Ô4Ü‘7Ñ% c¨5Ó1Ð1à×/Ñ/°°T¸1Ó=‰	ˆˆQ�Ü×)Ñ)¨$¯.©.¸#Ó>ˆØ×'Ñ'¨Ó/Ð/r(   c                ó¤  — |€t         j                  }t        | j                  «      j	                  ||«      \  }}t        |«      dk(  rt        j                  d|¬«      |fS t        j                  |j                  «       «      }t        |«      }t        |t         j                  «      r|}nt         j                  }|j                  |d¬«      |fS )Nr   )r   r   )Úshaper4   Frd   )r|   Úint64r   rH   Ú_str_get_dummiesrZ   ÚemptyÚvstackrˆ   r   r9   r4   r›   r¢   )rJ   Úsepr4   Ú
dummies_paÚlabelsÚdummiesr2   Údummies_dtypes           r&   rÐ   z!ArrowStringArray._str_get_dummiesú  s¬   € Øˆ=Ü—H‘HˆEÜ0°·±Ó@×QÑQØ�ó
Ñˆ
�Fô ˆv‹;˜!ÒÜ—8‘8 &°Ô6¸Ð>Ð>Ü—)‘)˜J×/Ñ/Ó1Ó2ˆÜ˜eÓ$ˆä�fœbŸh™hÔ'Ø"‰MäŸH™HˆMØ�~‰~˜m°%ˆ~Ó8¸&Ð@Ð@r(   c                óF  — | j                   j                  t        j                  u rc|j	                  t        j                  «       «      }t        |t
        j                  «      r|j                  d¬«      }|S |j                  «       }|S t        «       j                  |«      S )NF©Úzero_copy_only)r4   r8   r|   r}   rB   r+   rÏ   r9   r:   rˆ   r   r‰   ©rJ   rq   s     r&   rË   z$ArrowStringArray._convert_int_result  sw   € Ø�:‰:×Ñ¤"§&¡&Ñ(Ø—[‘[¤§¡£Ó,ˆFÜ˜&¤"§(¡(Ô+ØŸ™¸˜Ó>�ð ˆMð  Ÿ™Ó*�ØˆMä‹|×*Ñ*¨6Ó2Ð2r(   c                ó   — | j                   j                  t        j                  u rPt	        |t
        j                  «      r|j                  d¬«      }n|j                  «       }|j                  dd¬«      S t        «       j                  |«      S )NFrÙ   Úfloat64rd   )r4   r8   r|   r}   r9   r+   r:   rˆ   r¢   r   r‰   rÛ   s     r&   Ú_convert_rank_resultz%ArrowStringArray._convert_rank_result  sh   € Ø�:‰:×Ñ¤"§&¡&Ñ(Ü˜&¤"§(¡(Ô+ØŸ™¸˜Ó>‘àŸ™Ó*�Ø—=‘= °�=Ó7Ð7ä‹~×,Ñ,¨VÓ4Ð4r(   ©rb   Úkeepdimsc               óê  — | j                   j                  t        j                  u r¼|dv r¸|sTt	        j
                  | j                  «      }t	        j                  |t	        j                  | j                  d«      «      }n t	        j                  | j                  d«      } t        |«      j                  |f||dœ|¤Ž}|r|j                  t        j                  «      S |S |dv r | j                  |f||dœ|¤Ž}nt        d|› d�«      ‚|dv r+t        |t         j"                  «      r| j%                  |«      S t        |t         j"                  «      r t'        | «      || j                   ¬«      S |S )	N)ÚanyÚallÚ rß   )ÚminÚmaxÚsumÚargminÚargmaxzCannot perform reduction 'z' with string dtype)rè   ré   r3   )r4   r8   r|   r}   rA   Úis_nullrH   Ú	or_kleeneÚ	not_equalr   Ú_reducer¢   r›   Ú_reduce_calcr~   r9   r+   r:   rË   r=   )rJ   r…   rb   rà   ÚkwargsÚnasÚarrrq   s           r&   rí   zArrowStringArray._reduce   sB  € ð �:‰:×Ñ¤"§&¡&Ñ(¨T°^Ñ-CÙÜ—j‘j §¡Ó0�Ü—l‘l 3¬¯©°T·^±^ÀRÓ(HÓI‘ä—l‘l 4§>¡>°2Ó6�Ø5Ô(¨Ó-×5Ñ5ØðØ#¨hñØ:@ñˆFñ à—}‘}¤R§X¡XÓ.Ð.ØˆMàÐ<Ñ<Ø&�T×&Ñ& tÐX°FÀXÑXÐQWÑX‰FäÐ8¸¸Ð>QÐRÓSÐSàÐ'Ñ'¬J°v¼r¿x¹xÔ,HØ×+Ñ+¨FÓ3Ð3Ü˜¤§¡Ô)Ø”4˜“:˜f¨D¯J©JÔ7Ð7àˆMr(   c                óú   •— t         ‰| �  |¬«      }| j                  j                  t        j
                  u rC|j                  j                  «       }|j                  ||j                  |j                  d¬«      S |S )N)ÚdropnaF)Úindexr…   rX   )rD   Úvalue_countsr4   r8   r|   r}   Ú_valuesrˆ   Ú_constructorrô   r…   )rJ   ró   rq   Ú
res_valuesrL   s       €r&   rõ   zArrowStringArray.value_counts=  sm   ø€ Ü‘Ñ%¨VÐ%Ó4ˆØ�:‰:×Ñ¤"§&¡&Ñ(ØŸ™×0Ñ0Ó2ˆJØ×&Ñ&Ø &§,¡,°V·[±[Àuð 'ó ð ð ˆr(   c                óî  •— t        |t        t        f«      rR| j                  j                  t
        j                  ur,|j                  j                  t
        j                  u rt        S t        ‰| �%  ||«      }| j                  j                  t        j                  u rU|t        j                  k(  r!|j                  t        j                  d¬«      S |j                  t        j                  d¬«      S |S )NT)r8   F)r9   r   r   r4   r8   rF   rG   ÚNotImplementedrD   Ú_cmp_methodr|   r}   ÚoperatorÚnerˆ   r›   )rJ   ÚotherÚoprq   rL   s       €r&   rû   zArrowStringArray._cmp_methodF  s­   ø€ ä�uœÔ0CÐDÔEØ—
‘
×#Ñ#¬:¯=©=Ñ8Ø—‘×$Ñ$¬
¯©Ñ5ô "Ð!ä‘Ñ$ U¨BÓ/ˆØ�:‰:×Ñ¤"§&¡&Ñ(Ø”X—[‘[Ò Ø—‘¤r§x¡x¸$�Ó?Ð?à—‘¤r§x¡x¸%�Ó@Ð@Øˆr(   c                ó4   — t        d| j                  › d�«      ‚)Nzbad operand type for unary +: 'Ú')r~   r4   r[   s    r&   Ú__pos__zArrowStringArray.__pos__W  s   € ÜÐ9¸$¿*¹*¸ÀQÐGÓHÐHr(   )r4   zStringDtype | NoneÚreturnÚNoner*   )rT   úpa.DataType | Noner  z	pa.Scalar)NF)rT   r  rX   r™   r  zpa.Array | pa.ChunkedArray)r  rÆ   )r4   zDtype | NonerX   r™   r  r   )r4   r!   rX   r™   r  r   )r  r   )r�   rÆ   r  r1   )rK   r   r  znpt.NDArray[np.bool_])T)rX   r™   )rª   ústr | re.Patternr  r™   )rª   r  r´   r™   r§   rÆ   r  ztuple[str, bool, int])r´   r™   r§   rÆ   r¹   r™   )rª   r  r´   r™   r§   rÆ   r„   zScalar | lib.NoDefault)r­   Tr   T)rª   r  rÂ   zstr | CallablerÃ   rÆ   r´   r™   r§   rÆ   r¹   r™   )rÅ   zint | Sequence[int])r   )rª   rg   r§   rÆ   )Ú|N)rÓ   rg   r4   zNpDtype | None)r…   rg   rb   r™   rà   r™   )ró   r™   r  r"   )r  r   )Fr   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rE   rO   ÚclassmethodrQ   rW   r\   rs   rv   Úpropertyr4   r€   r   r†   r‹   r’   rœ   r¢   r   Ú_str_isalnumÚ_str_isalphaÚ_str_isdecimalÚ_str_isdigitÚ_str_islowerÚ_str_isnumericÚ_str_isspaceÚ_str_istitleÚ_str_isupperr   Ú_str_mapÚ_str_startswithÚ_str_endswithÚ_str_padÚ
_str_lowerÚ
_str_upperÚ
_str_stripÚ_str_lstripÚ_str_rstripÚ_str_removesuffixÚ_str_removeprefixÚ	_str_findÚ_str_getÚ_str_getitemÚ_str_capitalizeÚ
_str_titleÚ_str_swapcaseÚ_str_slice_replaceÚ_str_lenÚ
_str_sliceÚstaticmethodr«   rµ   r¸   r»   r¾   rÁ   rÇ   rÉ   rÐ   rË   rÞ   rí   rõ   rû   r  Ú__classcell__)rL   s   @r&   r1   r1   U   sá  ø… ñ)ðZ Óà>B÷ ò86ð õó ðð àEJðØ/ðØ>Bðà	#ôó ðó#ð à/3À%ñ/(Ø ,ð/(Ø;?ð/(à	ò/(ó ð/(ðb à=BñCØ .ðCØ6:ðCà	òCó ðCð
 òó ðõ)ð /2¯n©nÈ$ó 5ô;ó40ö$0ð$ )×5Ñ5€LØ(×5Ñ5€LØ*×9Ñ9€NØ(×5Ñ5€LØ(×5Ñ5€LØ*×9Ñ9€NØ(×5Ñ5€LØ(×5Ñ5€LØ(×5Ñ5€Là×'Ñ'€HØ+×;Ñ;€OØ)×7Ñ7€MØ$×-Ñ-€HØ&×1Ñ1€JØ&×1Ñ1€JØ&×1Ñ1€JØ'×3Ñ3€KØ'×3Ñ3€KØ-×?Ñ?ÐØ-×?Ñ?ÐØ%×/Ñ/€IØ$×-Ñ-€HØ(×5Ñ5€LØ+×;Ñ;€OØ&×1Ñ1€JØ)×7Ñ7€MØ.×AÑAÐØ$×-Ñ-€HØ&×1Ñ1€Jàò
ó ð
ð ð$Øð$Ø%)ð$Ø25ð$à	ò$ó ð$ð< ØØ�>‰>ØðVð ðVð ð	Vð õVð* ØØ%(§^¡^ðLàðLð ðLð ð	Lð
 #õLð( ØØ%(§^¡^ðPàðPð ðPð ð	Pð
 #õPð* ØØØð
àð
ð ð
ð ð	
ð
 ð
ð ð
ð õ
õ:Jö0ôAò"	3ò5ð ,0À%ñØðØ$(ðØ;?óö:ô÷"Ir(   r1   )r  r  )BÚ
__future__r   rü   r¥   Útypingr   r   Únumpyr|   Úpandas._libsr   r   rF   Úpandas.compatr   r	   r
   Úpandas.util._decoratorsr   Úpandas.util._validatorsr   Úpandas.core.dtypes.commonr   r   Úpandas.core.dtypes.inferencer   Úpandas.core.dtypes.missingr   Ú'pandas.core.arrays._arrow_string_mixinsr   Úpandas.core.arrays.arrowr   Úpandas.core.arrays.booleanr   Úpandas.core.arrays.floatingr   Úpandas.core.arrays.integerr   Úpandas.core.arrays.numericr   Úpandas.core.arrays.string_r   r   Ú pandas.core.strings.object_arrayr   r6   r+   Úpyarrow.computeÚcomputerA   Úcollections.abcr   r   Úpandas._typingr   r   r   r   r    Úpandas.core.dtypes.dtypesr!   Úpandasr"   r'   r/   r1   © r(   r&   Ú<module>rF     sµ   ðÝ "ã Û 	÷ó
 ÷÷ñ õ
 /Ý 3÷õ 7Ý +å IÝ 8Ý 3Ý 4Ý 1Ý 3÷õ DáÛÝ ñ ÷÷
õ õ 9åóòEñ ˆOÓôBIÐ-Ð/BÀOó BIó ñBIr(   