o
    Uh                     @  s   d dl mZ d dlmZ d dlmZmZ zd dlmZ W n ey+   d dl	mZ Y nw 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 deZdS )    )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                   @  sJ   e Zd ZU dZdZded< dZded< dZd	ed
< dddZdddZ	dS )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_orientdatar   varreturnc                 C  s   t | jtrttdd| jn| j}tt| j}|| 	 }t
tdr-tj|||d}ntj|| 	 ||d}t||d|iS )Nr   d   z1.22)interpolation)r   
percentile)
isinstancer   intlistnplinspacer   _MethodKindr   dropnar   r$   r   )selfr   r    r   r   valuesres r/   H/var/www/vscode/kcb/lib/python3.10/site-packages/seaborn/_stats/order.py_percentile>   s   &
zPerc._percentilegroupbyr	   orientscalesdict[str, Scale]c                 C  s   ddd| }| || j|S )Nyx)r7   r6   )applyr1   )r,   r   r2   r3   r4   r    r/   r/   r0   __call__I   s   zPerc.__call__N)r   r   r    r   r!   r   )
r   r   r2   r	   r3   r   r4   r5   r!   r   )
__name__
__module____qualname____doc__r   __annotations__r   r   r1   r9   r/   r/   r/   r0   r   %   s   
 
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   r/   r/   r/   r0   <module>   s&   