
    hMh                        d dl mZ d dlmZ d dlmZmZ 	 d dlmZ n# e$ r	 d dl	mZ Y nw xY 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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                  N    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	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                   t          | j        t                    r(t          t	          j        dd| j                            n| j        }t          t          | j                  }||         	                                }t          t          d          rt	          j        |||          }n/t	          j        ||         	                                ||          }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ress          T/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/seaborn/_stats/order.py_percentilezPerc._percentile>   s    1;DFC1H1HTDQTV,,---dfk4;//c!!##R(( 	F-@@@CC-S	 0 0 2 2AfEEEC#sL!4555    groupbyr
   orientscalesdict[str, Scale]c                P    ddd|         }|                     || j        |          S )Nyx)r;   r:   )applyr3   )r/   r!   r5   r6   r7   r"   s         r2   __call__zPerc.__call__I   s/     c""6*}}T4#3S999r4   N)r!   r   r"   r   r#   r   )
r!   r   r5   r
   r6   r   r7   r8   r#   r   )
__name__
__module____qualname____doc__r   __annotations__r   r    r3   r=    r4   r2   r   r   %   s}          $ AF&*O****	6 	6 	6 	6: : : : : :r4   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   rC   r4   r2   <module>rO      sG   " " " " " " ! ! ! ! ! ! ! ! ! ! ! ! ! !* * * *))))))))*           & & & & & & ) ) ) ) ) ) $ $ $ $ $ $ + + + + + + " (: (: (: (: (:4 (: (: (: (: (:s    ++