
     j`                       d dl mZ d dlmZ d dlZd dlZd dlmZmZm	Z	 d dl
Z
d dlZd dlmZmZ d dlmZmZ d dlmZ d dlmZmZmZmZ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*m+Z+ d dl,m-Z- d dl.m/Z/ esd dl0Z1d dl2m3Z4 d dl5m6Z6 erd dl7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z> d dl?m@Z@ e	eAejB        f         ZCddZD G d de/e"e*          ZE G d deE          ZFdS )    )annotations)partialN)TYPE_CHECKINGCallableUnion)libmissing)pa_version_under10p1pa_version_under13p0)find_stack_level)is_bool_dtypeis_integer_dtypeis_object_dtype	is_scalaris_string_dtypepandas_dtype)isna)ArrowStringArrayMixin)ArrowExtensionArray)BooleanDtype)
Int64Dtype)NumericDtype)BaseStringArrayStringDtype)invalid_comparison)ObjectStringArrayMixin)fallback_performancewarning)Sequence)	ArrayLikeAxisIntDtypeScalarnptSeriesreturnNonec                 6    t           rd} t          |           d S )NzCpyarrow>=10.0.1 is required for PyArrow backed ArrowExtensionArray.)r
   ImportError)msgs    sC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/core/arrays/string_arrow.py_chk_pyarrow_availabler,   G   s'     S#     c                      e Zd ZU dZded<   dZdm fdZedndo fd            Ze	 dpdq fd            Z	drdZ
eddddsd            Ze	 dpdsd            Zedtd            Zdu fdZednd            Z fdZdvd!Zdwdx fd#Zed$             Zej        Z	 dydzd&Zd"d'ej        d"fd{ fd+Zdnd|d0Zdnd|d1Z	 	 	 	 d}d~ fd7Zd fd:Z	 ddd<Z 	 ddd=Z!	 dd fdBZ"dC Z#dD Z$dE Z%dF Z&dG Z'dH Z(dI Z)dJ Z*dK Z+dL Z,dM Z-dN Z.dndOZ/dndPZ0dndQZ1d fdSZ2ddUZ3dd fdVZ4dd fdYZ5ddd\Z6d] Z7d"dd^ddbZ8d'dcddd"ddeddlZ9 xZ:S )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.

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

    Methods
    -------
    None

    See Also
    --------
    :func:`pandas.array`
        The recommended function for creating a ArrowStringArray.
    Series.str
        The string methods are available on Series backed by
        a 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   _dtypepyarrowr&   r'   c                   t                       t          |t          j        t          j        f          rJt          j                            |j                  r&t          j	        |t          j
                              }t                                          |           t          | j                  | _        t          j                            | j        j                  sft          j                            | j        j                  r.t          j                            | j        j        j                  st)          d          d S d S )N)storagezHArrowStringArray requires a PyArrow (chunked) array of large_string type)r,   
isinstancepaArrayChunkedArraytypes	is_stringtypepccastlarge_stringsuper__init__r   _storager0   is_large_string	_pa_arrayis_dictionary
value_type
ValueError)selfvalues	__class__s     r+   r?   zArrowStringArray.__init__   s      frx9:: 	8rx?Q?QK@
 @
 	8 WVR_%6%677F   !$-888x''(;<< 	H""4>#677	(()<)GHH	 $  		 	 	 	r-   Npa_typepa.DataType | None	pa.Scalarc                    t                                          ||          }t          j                            |j                  r(|&t          j        |t          j                              }|S N)	r>   _box_pa_scalarr5   r8   r9   r:   r;   r<   r=   )clsvaluerI   	pa_scalarrH   s       r+   rN   zArrowStringArray._box_pa_scalar   s\    GG**5'::	8in-- 	>' 	>	2?+<+<==Ir-   Fcopyboolpa.Array | pa.ChunkedArrayc                    t                                          ||          }t          j                            |j                  r(|&t          j        |t          j                              }|S rM   )	r>   _box_pa_arrayr5   r8   r9   r:   r;   r<   r=   )rO   rP   rI   rR   pa_arrayrH   s        r+   rV   zArrowStringArray._box_pa_array   s]     77((888hm,, 	< 	<wx):):;;Hr-   intc                *    t          | j                  S )z]
        Length of this array.

        Returns
        -------
        length : int
        )lenrB   rF   s    r+   __len__zArrowStringArray.__len__   s     4>"""r-   dtyperR   r^   Dtype | Nonec                  ddl m} t                       |rJt          |t                    r|dk    s/t          |          }t          |t                    r	|j        dv sJ t          ||          rV|j        }|j	        }t          j        ||d          } | t          j        ||t          j                                        S t          |t          j        t          j        f          r/ | t#          j        |t          j                                        S t          j        ||          } | t          j        |t          j                    d	
                    S )Nr   )BaseMaskedArraystring)r1   pyarrow_numpyF)rR   convert_na_value)maskr:   rR   T)r:   from_pandas)pandas.core.arrays.maskedra   r,   r4   strr   r   r3   _mask_datar   ensure_string_arrayr5   arrayrb   r6   r7   r;   r<   )rO   scalarsr^   rR   ra   	na_valuesresults          r+   _from_sequencezArrowStringArray._from_sequence   s`   ======    	*UC00 	Uh5F 	 ''Ee[11 em H 7   
 g// 	6  I]F,V$QVWWWF3rxYRY[[IIIJJJ"(BO!<== 	63rww	44555 (t<<<s28F$GGGHHHr-   c                2    |                      |||          S )Nr]   )rq   )rO   stringsr^   rR   s       r+   _from_sequence_of_stringsz*ArrowStringArray._from_sequence_of_strings   s     !!'T!BBBr-   c                    | j         S )z3
        An instance of 'string[pyarrow]'.
        )r0   r[   s    r+   r^   zArrowStringArray.dtype   s    
 {r-   locc                    t          |t                    s|t          j        urt	          d          t                                          ||          S )NScalar must be NA or str)r4   ri   
libmissingNA	TypeErrorr>   insertrF   rv   itemrH   s      r+   r|   zArrowStringArray.insert   sJ    $$$ 	8Z])B 	86777ww~~c4(((r-   c                D    t                                          |          S rM   )r   __from_arrow__rO   rG   nas      r+   _result_converterz"ArrowStringArray._result_converter   s    ~~,,V444r-   c                   t          |          r7t          |          rd}n~t          |t                    st	          d          nYt          j        |t          d          }d|t          |          <   |D ](}|$t          |t                    st	          d          )t                      	                    |          S )z-Maybe convert value to be pyarrow compatible.Nrx   Tr]   )
r   r   r4   ri   r{   nprm   objectr>   _maybe_convert_setitem_value)rF   rP   vrH   s      r+   r   z-ArrowStringArray._maybe_convert_setitem_value   s    U 
	@E{{ <s++ < :;;;< HU&t<<<E!%E$u++ @ @ @Z3%7%7 @#$>???ww33E:::r-   rG   r   npt.NDArray[np.bool_]c                N   d d |D             D             }t          |          s(t          j        t          |           t                    S t	          j        | j        t          j        || j        j	                            }t          j        |t          j
                  S )Nc                    g | ]C}|j         t          j                    t          j                    fv /|                                DS  )r:   r5   rb   nullas_py).0rQ   s     r+   
<listcomp>z)ArrowStringArray.isin.<locals>.<listcomp>   sP     
 
 
~")++rwyy!99
OO
 
 
r-   c                :    g | ]}t          j        |d           S )T)rg   )r5   scalar)r   rP   s     r+   r   z)ArrowStringArray.isin.<locals>.<listcomp>   s'    UUUUbi4@@@UUUr-   r^   )r:   )	value_set)rZ   r   zerosrS   r;   is_inrB   r5   rm   r:   bool_)rF   rG   r   rp   s       r+   isinzArrowStringArray.isin   s    
 
UUfUUU
 
 
	 9~~ 	38CIIT2222Nbhyt~?R&S&S&S
 
 

 xbh////r-   Tc                   t          |          }|| j        k    r|r|                                 S | S t          |t                    rF| j                            t          j        |j	                            }|
                    |          S t          |t          j                  r@t          j        |t          j                  r!|                     |t          j                  S t!                                          ||          S )N)r^   na_valuerf   )r   r^   rR   r4   r   rB   r<   r5   from_numpy_dtypenumpy_dtyper   r   
issubdtypefloatingto_numpynanr>   astype)rF   r^   rR   datarH   s       r+   r   zArrowStringArray.astype   s    U##DJ 	? #yy{{"K|,, 	?>&&r':5;L'M'MNND''---rx(( 	?R]5"+-N-N 	?==urv=>>>ww~~e$~///r-   c                    t          j        t          |           j         dt          t                                 | j        S )NzV._data is a deprecated and will be removed in a future version, use ._pa_array instead)
stacklevel)warningswarnr:   __name__FutureWarningr   rB   r[   s    r+   rk   zArrowStringArray._data  sN     	Dzz" : : :'))		
 	
 	
 	
 ~r-   convertc           
         ddl m}m} || j        }|| j        j        }t          |           }t          j        |           }t          |          st          |          r{t          |          r|}	n|}	t          |          }
|
rd}t          j        |||                    d          d|t          j        |                    }|
sd|d d <    |	||          S t          |          r|t          |          smt          j        |||                    d          d|          }t          j        ||t          j                    d	          } t%          |           |          S t          j        |||                    d                    S )
Nr   )BooleanArrayIntegerArray   uint8Fr   r   r^   r   r   Tre   r:   rg   )pandas.arraysr   r   r^   r   r   r   asarrayr   r   r   map_infer_maskviewr   r   r5   rm   rb   r:   )rF   fr   r^   r   r   r   re   arrconstructorna_value_is_narp   s               r+   _str_mapzArrowStringArray._str_map!  s   	
 	
 	
 	
 	
 	
 	
 	

  	JE 	+z*HDzzjE"" '	BmE&:&: '	B&& +**!(^^N '		'""! huoo
 
 
F "  QQQ;vt,,,U## 	BOE,B,B 	B'Q		'**EH  F Xf4bikktTTTF4::f%%% %c1dii.@.@AAAr-   r   caseflagsregexc                v   |r3t                       t                                          |||||          S |rt          j        | j        ||           }nt          j        | j        ||           }|                     ||          }t          |          st          |          |t          |          <   |S )N)ignore_case)r   )
r   r>   _str_containsr;   match_substring_regexrB   match_substringr   r   rS   )rF   patr   r   r   r   rp   rH   s          r+   r   zArrowStringArray._str_contains]  s      	F')))77((dE2uEEE 	S-dncSWxXXXFF'TRRRF''2'66Bxx 	,#'88F4<< r-   r   str | tuple[str, ...]r   Scalar | Nonec                \   t          |t                    rt          j        | j        |          }nt          |          dk    rTt          j        t          j	        t          | j                  t                    t          | j                            }n\t          j        | j        |d                   }|dd          D ]0}t          j        |t          j        | j        |                    }1t          |          s|                    |          }|                     |          S Npatternr   r   )re   r   )r4   ri   r;   starts_withrB   rZ   r5   rm   r   r   rS   r   or_	fill_nullr   rF   r   r   rp   ps        r+   _str_startswithz ArrowStringArray._str_startswithm  s   c3 	W^DNC@@@FF3xx1} 
W HS00===DDXDX   AGGGQRR W WAVFBN4>ST,U,U,UVVFFBxx 	*%%b))F%%f---r-   c                \   t          |t                    rt          j        | j        |          }nt          |          dk    rTt          j        t          j	        t          | j                  t                    t          | j                            }n\t          j        | j        |d                   }|dd          D ]0}t          j        |t          j        | j        |                    }1t          |          s|                    |          }|                     |          S r   )r4   ri   r;   	ends_withrB   rZ   r5   rm   r   r   rS   r   r   r   r   r   s        r+   _str_endswithzArrowStringArray._str_endswith  s   c3 	U\$.#>>>FF3xx1} 
U HS00===DDXDX   dnc!fEEEQRR U UAVFBLQR,S,S,STTFFBxx 	*%%b))F%%f---r-   str | re.Patternreplstr | Callablenc                R   t          |t          j                  st          |          s|r|r4t	                       t                                          ||||||          S |rt          j        nt          j	        } || j
        |||          } t          |           |          S )N)r   replacementmax_replacements)r4   rePatterncallabler   r>   _str_replacer;   replace_substring_regexreplace_substringrB   r:   )
rF   r   r   r   r   r   r   funcrp   rH   s
            r+   r   zArrowStringArray._str_replace  s     c2:&& 	J(4.. 	J 	J 	J')))77''T1dE5III-2Lr))8LdnctVWXXXtDzz&!!!r-   repeatsint | Sequence[int]c                    t          |t                    s!t                                          |          S  t	          |           t          j        | j        |                    S rM   )r4   rX   r>   _str_repeatr:   r;   binary_repeatrB   )rF   r   rH   s     r+   r   zArrowStringArray._str_repeat  sS    '3'' 	I77&&w///4::b.t~wGGHHHr-   ri   c                j    |                     d          sd| }|                     ||||d          S )N^T)r   )
startswithr   rF   r   r   r   r   s        r+   
_str_matchzArrowStringArray._str_match  sB     ~~c"" 	c))C!!#tUBd!CCCr-   c                    |                     d          r|                     d          r| d}|                     ||||          S )N$z\$)endswithr   r   s        r+   _str_fullmatchzArrowStringArray._str_fullmatch  sN     ||C   	CLL$7$7 	)))CsD%444r-   start
int | Nonestopstepc                    |#t                                          |||          S |d}|d} t          |           t          j        | j        |||                    S )Nr   r   )r   r   r   )r>   
_str_slicer:   r;   utf8_slice_codeunitsrB   )rF   r   r   r   rH   s       r+   r   zArrowStringArray._str_slice  sw      	977%%eT4888 	E 	DtDzz#DN%dQUVVV
 
 	
r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_alnumrB   r   rF   rp   s     r+   _str_isalnumzArrowStringArray._str_isalnum  (    !$.11%%f---r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_alpharB   r   r   s     r+   _str_isalphazArrowStringArray._str_isalpha  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_decimalrB   r   r   s     r+   _str_isdecimalzArrowStringArray._str_isdecimal  (    #DN33%%f---r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_digitrB   r   r   s     r+   _str_isdigitzArrowStringArray._str_isdigit  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_lowerrB   r   r   s     r+   _str_islowerzArrowStringArray._str_islower  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_numericrB   r   r   s     r+   _str_isnumericzArrowStringArray._str_isnumeric  r  r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_spacerB   r   r   s     r+   _str_isspacezArrowStringArray._str_isspace  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_titlerB   r   r   s     r+   _str_istitlezArrowStringArray._str_istitle  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_is_upperrB   r   r   s     r+   _str_isupperzArrowStringArray._str_isupper  r   r-   c                ^    t          j        | j                  }|                     |          S rM   )r;   utf8_lengthrB   _convert_int_dtyper   s     r+   _str_lenzArrowStringArray._str_len  s'    //&&v...r-   c                `     t          |           t          j        | j                            S rM   )r:   r;   
utf8_lowerrB   r[   s    r+   
_str_lowerzArrowStringArray._str_lower  $    tDzz"-77888r-   c                `     t          |           t          j        | j                            S rM   )r:   r;   
utf8_upperrB   r[   s    r+   
_str_upperzArrowStringArray._str_upper  r  r-   c                    |t          j        | j                  }nt          j        | j        |          } t	          |           |          S N)
characters)r;   utf8_trim_whitespacerB   	utf8_trimr:   rF   to_striprp   s      r+   
_str_stripzArrowStringArray._str_strip  sK     	G,T^<<FF\$.XFFFFtDzz&!!!r-   c                    |t          j        | j                  }nt          j        | j        |          } t	          |           |          S r!  )r;   utf8_ltrim_whitespacerB   
utf8_ltrimr:   r%  s      r+   _str_lstripzArrowStringArray._str_lstrip  K     	H-dn==FF]4>hGGGFtDzz&!!!r-   c                    |t          j        | j                  }nt          j        | j        |          } t	          |           |          S r!  )r;   utf8_rtrim_whitespacerB   
utf8_rtrimr:   r%  s      r+   _str_rstripzArrowStringArray._str_rstrip  r,  r-   prefixc                >   t           sut          j        | j        |          }t          j        | j        t          |                    }t          j        ||| j                  } t          |           |          S t                      	                    |          S )Nr   )
r   r;   r   rB   r   rZ   if_elser:   r>   _str_removeprefix)rF   r1  r   removedrp   rH   s        r+   r4  z"ArrowStringArray._str_removeprefix  s~    # 	&.HHHK-dnc&kkJJGZWdnEEF4::f%%%ww((000r-   suffixc                    t          j        | j        |          }t          j        | j        dt	          |                     }t          j        ||| j                  } t          |           |          S )Nr   r   r   )r;   r   rB   r   rZ   r3  r:   )rF   r6  r   r5  rp   s        r+   _str_removesuffixz"ArrowStringArray._str_removesuffix  sd    L@@@	)$.!3v;;,OOOIw??tDzz&!!!r-   c                    |r"t                                          ||          S t          j        | j        |          }|                     |          S rM   )r>   
_str_countr;   count_substring_regexrB   r  )rF   r   r   rp   rH   s       r+   r;  zArrowStringArray._str_count  sM     	277%%c5111)$.#>>&&v...r-   subendc                   |dk    rw|ut          j        | j        ||          }t          j        ||          }t          j        |d          }t          j        |||z
            }t          j        |||          }nH|dk    r|| j        }t          j        ||          }n#t                                          |||          S | 	                    |          S )Nr   r8  r   )
r;   r   rB   find_substringequaladdr3  r>   	_str_findr  )	rF   r=  r   r>  slicesrp   	not_foundoffset_resultrH   s	           r+   rC  zArrowStringArray._str_find  s    A: 
	6# 
	6,T^UMMMF&vs33F,,IF63;77MZ	6=AAFFaZ 	6C 	6^F&vs33FF77$$S%555&&v...r-   |sepc                R   t          | j                                      |          \  }}t          |          dk    r"t	          j        dt          j                  |fS t	          j        |                                          }|	                    t          j        d          |fS )Nr   )r   r   )shaper^   Frf   )
r   rB   _str_get_dummiesrZ   r   emptyint64vstackr   r   )rF   rH  
dummies_palabelsdummiess        r+   rK  z!ArrowStringArray._str_get_dummies*  s    0@@QQRUVV
Fv;;! 	B8&9996AA)J//1122~~bhU~33V;;r-   c                D    t                                          |          S rM   )r   r   r   s     r+   r  z#ArrowStringArray._convert_int_dtype1  s    ||**6222r-   skipnakeepdimsnamerT  rU  c                    | j         |f||d|}|dv r/t          |t          j                  r|                     |          S t          |t          j                  r t          |           |          S |S )NrS  )argminargmax)_reduce_calcr4   r5   r6   r  r:   )rF   rV  rT  rU  kwargsrp   s         r+   _reducezArrowStringArray._reduce4  s     #"4TTTVTT'' 	Jvrx,H,H 	**6222)) 	4::f%%%Mr-   averagekeepaxismethod	na_option	ascendingpctr`  r    ra  rb  rc  rd  c          	     \    |                      |                     |||||                    S )z*
        See Series.rank.__doc__.
        r_  )r  
_rank_calc)rF   r`  ra  rb  rc  rd  s         r+   _rankzArrowStringArray._rank?  sA     &&OO##   
 
 	
r-   r&   r'   rM   )rI   rJ   r&   rK   )NF)rI   rJ   rR   rS   r&   rT   )r&   rX   )r^   r_   rR   rS   )r&   r   )rv   rX   r&   r/   )rG   r   r&   r   T)rR   rS   NNTr^   r_   r   rS   )r   rS   r   rX   r   rS   )r   r   r   r   )r   Tr   T)r   r   r   r   r   rX   r   rS   r   rX   r   rS   )r   r   )Tr   N)r   ri   r   rS   r   rX   r   r   )r   rS   r   rX   r   r   )NNN)r   r   r   r   r   r   )r1  ri   )r6  ri   )r   )r   ri   r   rX   )r   N)r=  ri   r   rX   r>  r   )rG  )rH  ri   rV  ri   rT  rS   rU  rS   )
r`  r    ra  ri   rb  ri   rc  rS   rd  rS   );r   
__module____qualname____doc____annotations__r@   r?   classmethodrN   rV   r\   rq   rt   propertyr^   r|   r   r   r   r   rk   ry   rz   _str_na_valuer   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r  r  r'  r+  r0  r4  r9  r;  rC  rK  r  r\  rg  __classcell__rH   s   @r+   r/   r/   R   s7        ' 'V H     &       [ EJ      [# # # # >BQV I I I I I [I4 ?DC C C C [C
    X) ) ) ) ) )
 5 5 5 [5; ; ; ; ;0 0 0 0$0 0 0 0 0 0 0   X MM MQ:B :B :B :B :Bz !%1t       . . . . .&. . . . .. " " " " " " ""I I I I I I PTD D D D D KO5 5 5 5 5 UY
 
 
 
 
 
 
. . .. . .. . .. . .. . .. . .. . .. . .. . ./ / /9 9 99 9 9" " " "" " " "" " " "1 1 1 1 1 1" " " "/ / / / / / // / / / / / /< < < < <3 3 3 ,0%	 	 	 	 	 	 
 
 
 
 
 
 
 
 
 
r-   r/   c                       e Zd ZdZedd            Z fdZ	 ddd
Zd Z fdZ	dd fdZ
dddd  fdZd! fdZ xZS )"ArrowStringArrayNumpySemanticsrc   Nc                    t          |          s"|                    t          |                    }t          |                              t
          j                  S )Nr   )r   r   rS   r   r   r   r   r   s      r+   r   z0ArrowStringArrayNumpySemantics._result_converterY  sJ    Bxx 	0%%d2hh//F"6**33RV3DDDr-   c                    |t           j        v r'|dvr#t          t          t           |          |           S t	                                          |          S )N)rB   __dict__)r   r{  r   getattrr>   __getattribute__)rF   r~   rH   s     r+   r}  z/ArrowStringArrayNumpySemantics.__getattribute___  s_     (11 	Gd C
 7
 	G 7#8$??FFFww''---r-   Tr^   r_   r   rS   c           
        || j         }|| j         j        }t          |           }t          j        |           }t          |          st          |          rt          |          rt          j        }nd}	 t          j	        |||
                    d          d|t          j         |                    }|S # t          $ rW t          j	        |||
                    d          d|          }|r$|j         t          k    rt          j        |          }|cY S w xY wt          |          r|t          |          smt          j	        |||
                    d          d|          }t!          j        ||t!          j                    d          } t'          |           |          S t          j	        |||
                    d                    S )NFr   r   r   Tr   )r^   r   r   r   r   r   r   r   r   r   r   rE   r   maybe_convert_objectsr   r   r5   rm   rb   r:   )rF   r   r   r^   r   re   r   rp   s           r+   r   z'ArrowStringArrayNumpySemantics._str_mapi  s     	JE 	+z*HDzzjE"" (	BmE&:&: (	B&& !6 +IIg&&!%(5//    
 
 
+IIg&&!%    ?v|v5 ? 6v>>F
 U## 	BOE,B,B 	B'Q		'**EH  F Xf4bikktTTTF4::f%%% %c1dii.@.@AAAs   8A B9 9ADDc                    t          |t          j                  r|                    d          }n|                                }|j        t
          j        k    r|                    t
          j                  }|S )NF)zero_copy_only)	r4   r5   r6   r   r^   r   int32r   rM  r   s     r+   r  z1ArrowStringArrayNumpySemantics._convert_int_dtype  sc    fbh'' 	'__E_::FF__&&F<28# 	-]]28,,Fr-   c                <   	 t                                          ||          }n&# t          j        $ r t	          | ||          cY S w xY w|t
          j        k    r!|                    t          j	        d          S |                    t          j	        d          S )NTry  F)
r>   _cmp_methodr5   ArrowNotImplementedErrorr   operatorner   r   r   )rF   otheroprp   rH   s       r+   r  z*ArrowStringArrayNumpySemantics._cmp_method  s    	7WW((33FF* 	7 	7 	7%dE266666	7 	=??28d?;;;??28e?<<<s   "&  A	A	dropnar&   r%   c                    ddl m} t                                          |          } ||j                                        |j        |j        d          S )Nr   r$   F)indexrV  rR   )pandasr%   r>   value_counts_valuesr   r  rV  )rF   r  r%   rp   rH   s       r+   r  z+ArrowStringArrayNumpySemantics.value_counts  sa    !!!!!!%%f--vN##%%V\RW
 
 
 	
r-   FrS  rV  ri   rT  rU  c               x   |dv r|s_|dk    rYt          j        t          j        | j                            }t          j        |t          j        | j        d                    }nt          j        | j        d          } t          |          j        |f||d|S  t                      j        |f||d|S )N)anyallr   rS  )	r;   invertis_nullrB   
and_kleene	not_equalr   r\  r>   )rF   rV  rT  rU  r[  nasr   rH   s          r+   r\  z&ArrowStringArrayNumpySemantics._reduce  s     >! 
	U 7dem 7i
4> : :;;mCdnb)I)IJJl4>2663&s++3#h :@   #577?4TTTVTTTr-   rv   rX   c                |    |t           j        u rt          j        }t	                                          ||          S rM   )r   r   ry   rz   r>   r|   r}   s      r+   r|   z%ArrowStringArrayNumpySemantics.insert  s0    26> 	!=Dww~~c4(((r-   rM   rj  rk  ri  )r  rS   r&   r%   rl  )rv   rX   r&   rw  )r   rm  rn  r@   rq  r   r}  r   r  r  r  r\  r|   rt  ru  s   @r+   rw  rw  V  s%       HE E E [E
. . . . . MQ3B 3B 3B 3B 3Bj  = = = = =
 
 
 
 
 
 
 ,0%U U U U U U U U) ) ) ) ) ) ) ) ) )r-   rw  rh  )G
__future__r   	functoolsr   r  r   typingr   r   r   r   numpyr   pandas._libsr   r	   ry   pandas.compatr
   r   pandas.util._exceptionsr   pandas.core.dtypes.commonr   r   r   r   r   r   pandas.core.dtypes.missingr   'pandas.core.arrays._arrow_string_mixinsr   pandas.core.arrays.arrowr   pandas.core.arrays.booleanr   pandas.core.arrays.integerr   pandas.core.arrays.numericr   pandas.core.arrays.string_r   r   pandas.core.opsr    pandas.core.strings.object_arrayr   r1   r5   pyarrow.computecomputer;   %pandas.core.arrays.arrow._arrow_utilsr   collections.abcr   pandas._typingr   r    r!   r"   r#   r  r%   ri   NATypeArrowStringScalarOrNATr,   r/   rw  r   r-   r+   <module>r     sD   " " " " " "        				         
                    5 4 4 4 4 4                , + + + + + I I I I I I 8 8 8 8 8 8 3 3 3 3 3 3 1 1 1 1 1 1 3 3 3 3 3 3        / . . . . . C C C C C C R      QQQQQQ  ((((((               sJ$556    A
 A
 A
 A
 A
-/BO A
 A
 A
Hu) u) u) u) u)%5 u) u) u) u) u)r-   