
     jUD                    *   d dl 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 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mZmZ d dlmZ d dlm Z  d dl!m"Z" d dl#m$Z$ erd dl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/  G d dee e$          Z0dS )    )annotations)TYPE_CHECKINGLiteralN)lib)is_supported_dtype)function)astype_array)'construct_1d_object_array_from_listlike)pandas_dtype)NumpyEADtype)isna)	arraylikemissingnanopsops)OpsMixin)NDArrayBackedExtensionArray)ensure_wrapped_if_datetimelike)ObjectStringArrayMixin)AxisIntDtypeFillnaOptionsInterpolateOptionsNpDtypeScalarSelfnpt)Indexc                  H    e Zd ZU dZdZdZded<   ded<   ej        Z		 d[d\ fdZ
edddd]d            Zd^dZed_d            Z	 d`dadZdbdZdcddd!Zded"Zd# Zdfd%Zddd d&dgd-Zdhd3Zdddd d4did8Zdddd d4did9Zdd d:djd<Zdd d:djd=Zdd d>d?dkdAZdd d>d?dkdBZddddd dCdldDZddddd dEdmdGZddddHdd dIdndKZ ddddHdd dIdndLZ!ddddHdd dIdndMZ"ddddd dCdldNZ#ddddd dCdldOZ$dde%j&        fdodSZ'dpdTZ(dpdUZ)dpdVZ*dpdWZ+dX Z,e,Z-dqdZZ.ej        Z/ xZ0S )rNumpyExtensionArraya'  
    A pandas ExtensionArray for NumPy data.

    This is mostly for internal compatibility, and is not especially
    useful on its own.

    Parameters
    ----------
    values : ndarray
        The NumPy ndarray to wrap. Must be 1-dimensional.
    copy : bool, default False
        Whether to copy `values`.

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

    Methods
    -------
    None

    Examples
    --------
    >>> pd.arrays.NumpyExtensionArray(np.array([0, 1, 2, 3]))
    <NumpyExtensionArray>
    [0, 1, 2, 3]
    Length: 4, dtype: int64
    npy_extensioni  
np.ndarray_ndarrayr   _dtypeFvalues np.ndarray | NumpyExtensionArraycopyboolreturnNonec                   t          |t          |                     r|j        }t          |t          j                  s$t          dt          |          j                   |j        dk    rt          d          |r|                                }t          |j
                  }t                                          ||           d S )Nz$'values' must be a NumPy array, not r   z*NumpyExtensionArray must be 1-dimensional.)
isinstancetyper#   npndarray
ValueError__name__ndimr'   r   dtypesuper__init__)selfr%   r'   r3   	__class__s       mC:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\pandas/core/arrays/numpy_.pyr5   zNumpyExtensionArray.__init___   s     fd4jj)) 	%_F&"*-- 	NtF||7LNN   ;! 	KIJJJ 	#[[]]FV\**'''''    Nr3   r'   r3   Dtype | Nonec                  t          |t                    r|j        }t          j        ||          }|j        dk    r,t          |d          s||t          k    rt          |          }|r||u r|	                                } | |          S )Nr3      r3   )
r,   r   r$   r.   asarrayr2   hasattrobjectr
   r'   )clsscalarsr3   r'   results        r8   _from_sequencez"NumpyExtensionArray._from_sequences   s     e\** 	!LE G5111K!O	FGW--	F 	F #(6/	F =WEEF 	#Fg% 	#[[]]Fs6{{r9   arrc                2     t          |           |          S Nr-   )r6   rF   s     r8   _from_backing_dataz&NumpyExtensionArray._from_backing_data   s    tDzz#r9   c                    | j         S rH   )r$   r6   s    r8   r3   zNumpyExtensionArray.dtype   s
    {r9   NpDtype | Nonebool | Nonec                8    t          j        | j        |          S Nr=   )r.   r?   r#   )r6   r3   r'   s      r8   	__array__zNumpyExtensionArray.__array__   s     z$-u5555r9   ufuncnp.ufuncmethodstrc                    |                     dd          }t          j         ||g|R i |}|t          ur|S d|v rt          j         ||g|R i |S |dk    r"t          j         ||g|R i |}|t          ur|S t          d |D                       }|rt          d |D                       |d<    t          ||          |i |}|j        dk    rt           fd|D                       S |dk    rd S |dk    r4t          |t          j                  r t                     |          S |S  t                     |          S )	Nout reducec              3  R   K   | ]"}t          |t                    r|j        n|V  #d S rH   r,   r    r#   .0xs     r8   	<genexpr>z6NumpyExtensionArray.__array_ufunc__.<locals>.<genexpr>   sI       
 
HI*Q(;<<CAJJ!
 
 
 
 
 
r9   c              3  R   K   | ]"}t          |t                    r|j        n|V  #d S rH   r[   r\   s     r8   r_   z6NumpyExtensionArray.__array_ufunc__.<locals>.<genexpr>   sI       " "LMj,?@@G

a" " " " " "r9   r>   c              3  H   K   | ]} t                    |          V  d S rH   rI   )r]   r^   r6   s     r8   r_   z6NumpyExtensionArray.__array_ufunc__.<locals>.<genexpr>   s1      771dA777777r9   at)getr   !maybe_dispatch_ufunc_to_dunder_opNotImplementeddispatch_ufunc_with_outdispatch_reduction_ufunctuplegetattrnoutr,   r.   r/   r-   )r6   rR   rT   inputskwargsrW   rD   s   `      r8   __array_ufunc__z#NumpyExtensionArray.__array_ufunc__   s   
 jj##<%
"(
 
 
,2
 
 ' 	MF? 	4eV&,  06   X 	7eV&,  06 F ^+   
 
MS
 
 
 
 
  	! " "QT" " "  F5M ('':6:::> 	&7777777777t^ 	&4x 		&&"*-- *!tDzz&))) M 4::f%%%r9   Tc                    t          |          }|| j        k    r|r|                                 S | S t          | j        ||          }|S )Nr:   )r   r3   r'   r	   r#   )r6   r3   r'   rD   s       r8   astypezNumpyExtensionArray.astype   sT    U##DJ 	 #yy{{"Kdm5tDDDr9   c                *    t          | j                  S rH   )r   r#   rL   s    r8   r   zNumpyExtensionArray.isna   s    DM"""r9   c                "    || j         j        }|S rH   )r3   na_value)r6   
fill_values     r8   _validate_scalarz$NumpyExtensionArray._validate_scalar   s     	-,Jr9   tuple[np.ndarray, float | None]c                N    | j         j        dv rd }nt          j        }| j        |fS )Niub)r3   kindr.   nanr#   )r6   fvs     r8   _values_for_factorizez)NumpyExtensionArray._values_for_factorize   s.    :?e# 	BBB}b  r9   )limit
limit_arear'   r   r|   
int | Noner}   #Literal['inside', 'outside'] | Noner   c                  |r| j                                         }n| j         }t          j        |          }t          j        |j        |d||           |s| S t          |                               || j                  S )z.
        ffill or bfill along axis=0.
        r   )rT   axisr|   r}   r=   )	r#   r'   r   clean_fill_methodpad_or_backfill_inplaceTr-   _simple_newr3   )r6   rT   r|   r}   r'   out_datameths          r8   _pad_or_backfillz$NumpyExtensionArray._pad_or_backfill   s      	%}))++HH}H(00'J!	
 	
 	
 	
  	KDzz%%hdj%AAAr9   r   r   intindexr   c          
         |s| j         }	n| j                                         }	t          j        |	f||||||d| |s| S t	          |                               |	| j                  S )z2
        See NDFrame.interpolate.__doc__.
        )rT   r   r   r|   limit_directionr}   r=   )r#   r'   r   interpolate_2d_inplacer-   r   r3   )
r6   rT   r   r   r|   r   r}   r'   rl   r   s
             r8   interpolatezNumpyExtensionArray.interpolate  s       	,}HH}))++H 	&		
+!		
 		
 		
 		
 		
  	KDzz%%hdj%AAAr9   )r   rW   keepdimsskipnaAxisInt | Noner   r   c                   t          j        d||d           t          j        | j        ||          }|                     ||          S NrX   )rW   r   r   r   )nvvalidate_anyr   nananyr#   _wrap_reduction_resultr6   r   rW   r   r   rD   s         r8   anyzNumpyExtensionArray.any9  L     	CX>>???t}4GGG**4888r9   c                   t          j        d||d           t          j        | j        ||          }|                     ||          S r   )r   validate_allr   nanallr#   r   r   s         r8   allzNumpyExtensionArray.allE  r   r9   r   r   c                   t          j        d|           t          j        | j        ||                                 |          }|                     ||          S NrX   )r%   r   maskr   )r   validate_minr   nanminr#   r   r   r6   r   r   rl   rD   s        r8   minzNumpyExtensionArray.minQ  W     	F###=t$))++f
 
 
 **4888r9   c                   t          j        d|           t          j        | j        ||                                 |          }|                     ||          S r   )r   validate_maxr   nanmaxr#   r   r   r   s        r8   maxzNumpyExtensionArray.maxZ  r   r9   r   r   r   	min_countr   c                   t          j        d|           t          j        | j        |||          }|                     ||          S NrX   r   )r   validate_sumr   nansumr#   r   r6   r   r   r   rl   rD   s         r8   sumzNumpyExtensionArray.sumc  sO     	F###MVy
 
 
 **4888r9   c                   t          j        d|           t          j        | j        |||          }|                     ||          S r   )r   validate_prodr   nanprodr#   r   r   s         r8   prodzNumpyExtensionArray.prodq  sP     	V$$$MVy
 
 
 **4888r9   )r   r3   rW   r   r   c                   t          j        d|||d           t          j        | j        ||          }|                     ||          S )NrX   r3   rW   r   r   )r   validate_meanr   nanmeanr#   r   r6   r   r3   rW   r   r   rD   s          r8   meanzNumpyExtensionArray.mean  sO     	uShOOPPPDHHH**4888r9   )r   rW   overwrite_inputr   r   r   c                   t          j        d|||d           t          j        | j        ||          }|                     ||          S )NrX   )rW   r   r   r   )r   validate_medianr   	nanmedianr#   r   )r6   r   rW   r   r   r   rD   s          r8   medianzNumpyExtensionArray.median  sY     	XVV	
 	
 	
 !$-d6JJJ**4888r9   r>   )r   r3   rW   ddofr   r   r   c                   t          j        d|||dd           t          j        | j        |||          }|                     ||          S )NrX   r   stdfnamer   r   r   )r   validate_stat_ddof_funcr   nanstdr#   r   r6   r   r3   rW   r   r   r   rD   s           r8   r   zNumpyExtensionArray.std  a     	"%BB%	
 	
 	
 	
 t}4TRRR**4888r9   c                   t          j        d|||dd           t          j        | j        |||          }|                     ||          S )NrX   r   varr   r   )r   r   r   nanvarr#   r   r   s           r8   r   zNumpyExtensionArray.var  r   r9   c                   t          j        d|||dd           t          j        | j        |||          }|                     ||          S )NrX   r   semr   r   )r   r   r   nansemr#   r   r   s           r8   r   zNumpyExtensionArray.sem  r   r9   c                   t          j        d|||dd           t          j        | j        ||          }|                     ||          S )NrX   r   kurtr   r   )r   r   r   nankurtr#   r   r   s          r8   r   zNumpyExtensionArray.kurt  _     	"%BB&	
 	
 	
 	
 DHHH**4888r9   c                   t          j        d|||dd           t          j        | j        ||          }|                     ||          S )NrX   r   skewr   r   )r   r   r   nanskewr#   r   r   s          r8   r   zNumpyExtensionArray.skew  r   r9   npt.DTypeLike | Nonerr   rA   c                (   |                                  }|t          j        ur3|                                r| j                                        }|||<   n| j        }t          j        ||          }|r|| j        u r|                                }|S rP   )r   r   
no_defaultr   r#   r'   r.   r?   )r6   r3   r'   rr   r   rD   s         r8   to_numpyzNumpyExtensionArray.to_numpy  s     yy{{3>) 	#dhhjj 	#]''))F#F4LL]FF%000 	#Fdm+ 	#[[]]Fr9   c                >     t          |           | j                   S rH   r-   r#   rL   s    r8   
__invert__zNumpyExtensionArray.__invert__      tDzz4=.)))r9   c                >     t          |           | j                   S rH   r   rL   s    r8   __neg__zNumpyExtensionArray.__neg__  r   r9   c                >     t          |           | j        
           S rH   r   rL   s    r8   __pos__zNumpyExtensionArray.__pos__	  r   r9   c                V     t          |           t          | j                            S rH   )r-   absr#   rL   s    r8   __abs__zNumpyExtensionArray.__abs__  s"    tDzz#dm,,---r9   c                   t          |t                    r|j        }t          j        |t          |           f          }t          j        |          }t          |          } || j        |          }|t          u s|t          j	        u rM|\  }}t          |t          j                  r*|                     |          |                     |          fS ||fS t          |t          j                  r|                     |          S |S rH   )r,   r    r#   r   maybe_prepare_scalar_for_oplenget_array_opr   divmodrdivmodr.   r/   _wrap_ndarray_result)r6   otheroppd_oprD   abs          r8   _cmp_methodzNumpyExtensionArray._cmp_method  s    e011 	#NE/D		|DD $$.u55t}e,,< 	2, 	DAq!RZ(( R 0033T5N5Nq5Q5QQQa4Kfbj)) 	5 ,,V444r9   rD   c                    |j         j        dk    r6t          |j                   r"ddlm} |                    ||j                   S  t          |           |          S )Nmr   )TimedeltaArrayr=   )r3   rx   r   pandas.core.arraysr   r   r-   )r6   rD   r   s      r8   r   z(NumpyExtensionArray._wrap_ndarray_result(  sm     <# 	J(:6<(H(H 	J999999!--fFL-IIItDzz&!!!r9   )F)r%   r&   r'   r(   r)   r*   )r3   r;   r'   r(   r)   r    )rF   r"   r)   r    )r)   r   )NN)r3   rM   r'   rN   r)   r"   )rR   rS   rT   rU   )T)r'   r(   )r)   r"   )r)   ru   )
rT   r   r|   r~   r}   r   r'   r(   r)   r   )
rT   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   r3   rM   r   r(   r   r(   )r   r   r   r(   r   r(   r   r(   )
r   r   r3   rM   r   r   r   r(   r   r(   )r3   r   r'   r(   rr   rA   r)   r"   )r)   r    )rD   r"   )1r1   
__module____qualname____doc___typ__array_priority____annotations__r.   ry   _internal_fill_valuer5   classmethodrE   rJ   propertyr3   rQ   rm   ro   r   rt   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _arith_methodr   _str_na_value__classcell__)r7   s   @r8   r    r    0   s        
 B D6 FK( ( ( ( ( ( (( /3%     [0       X AE6 6 6 6 6
4& 4& 4& 4&r	 	 	 	 	# # # #  ! ! ! ! !:>B B B B B B:"B "B "B "BT  $
9 
9 
9 
9 
9 
9  $
9 
9 
9 
9 
9 
9 )-T9 9 9 9 9 9 )-T9 9 9 9 9 9  $9 9 9 9 9 9"  $9 9 9 9 9 9"  $ $9 9 9 9 9 9   $ %9 9 9 9 9 9$  $ $9 9 9 9 9 9&  $ $9 9 9 9 9 9&  $ $9 9 9 9 9 9&  $ $9 9 9 9 9 9$  $ $9 9 9 9 9 9( '+>	    .* * * ** * * ** * * *. . . .  .  M" " " " FMMMMMr9   r    )1
__future__r   typingr   r   numpyr.   pandas._libsr   pandas._libs.tslibsr   pandas.compat.numpyr   r   pandas.core.dtypes.astyper	   pandas.core.dtypes.castr
   pandas.core.dtypes.commonr   pandas.core.dtypes.dtypesr   pandas.core.dtypes.missingr   pandas.corer   r   r   r   pandas.core.arrayliker   pandas.core.arrays._mixinsr   pandas.core.constructionr    pandas.core.strings.object_arrayr   pandas._typingr   r   r   r   r   r   r   r   pandasr   r    rX   r9   r8   <module>r     s(   " " " " " "       
           2 2 2 2 2 2 . . . . . . 2 2 2 2 2 2 K K K K K K 2 2 2 2 2 2 2 2 2 2 2 2 + + + + + +            + * * * * * B B B B B B C C C C C C C C C C C C 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
C C C C CC C C C Cr9   