
    'Wh                        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
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 ed   Ze G d de             Zy# e$ r	 d dl	mZ Y Ew xY w)    )annotations)	dataclass)ClassVarcast)LiteralN)	DataFrame)Scale)GroupBy)Stat)_version_predates)inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibulllinearmedian_unbiasednormal_unbiasedlowerhighermidpointnearestc                  `    e Zd ZU dZdZded<   dZded<   dZd	ed
<   ddZ	 	 	 	 	 	 	 	 	 	 ddZ	y)PercaY  
    Replace observations with percentile values.

    Parameters
    ----------
    k : list of numbers or int
        If a list of numbers, this gives the percentiles (in [0, 100]) to compute.
        If an integer, compute `k` evenly-spaced percentiles between 0 and 100.
        For example, `k=5` computes the 0, 25, 50, 75, and 100th percentiles.
    method : str
        Method for interpolating percentiles between observed datapoints.
        See :func:`numpy.percentile` for valid options and more information.

    Examples
    --------
    .. include:: ../docstrings/objects.Perc.rst

       zint | list[float]kr   strmethodTzClassVar[bool]group_by_orientc                   t        | j                  t              r*t        t	        j
                  dd| j                              n| j                  }t        t        | j                        }||   j                         }t        t        d      rt	        j                  |||      }n)t	        j                  ||   j                         ||      }t        ||d|i      S )Nr   d   z1.22)interpolation)r   
percentile)
isinstancer   intlistnplinspacer   _MethodKindr   dropnar   r$   r   )selfdatavarr   r   valuesress          N/var/www/html/jupyter_env/lib/python3.12/site-packages/seaborn/_stats/order.py_percentilezPerc._percentile>   s    1;DFFC1HDQTVV,-dffk4;;/c!!#R(--@C--S	 0 0 2AfEC#sL!455    c                L    ddd|   }|j                  || j                  |      S )Nyx)r6   r5   )applyr2   )r,   r-   groupbyorientscalesr.   s         r1   __call__zPerc.__call__I   s,     c"6*}}T4#3#3S99r3   N)r-   r   r.   r   returnr   )
r-   r   r8   r
   r9   r   r:   zdict[str, Scale]r<   r   )
__name__
__module____qualname____doc__r   __annotations__r   r    r2   r;    r3   r1   r   r   %   sZ    $ AFC&*O^*	6::(/:9<:FV:	:r3   r   )
__future__r   dataclassesr   typingr   r   r   ImportErrortyping_extensionsnumpyr(   pandasr   seaborn._core.scalesr	   seaborn._core.groupbyr
   seaborn._stats.baser   seaborn.utilsr   r*   r   rB   r3   r1   <module>rN      sj    " ! !*   & ) $ + " (:4 (: (:?  *)*s   A A"!A"