Ë
    Ìiø  ã                   ón   — 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  G d„ d	e«      Zy
)é    )ÚAggregation)ÚHasNulls)ÚPercentiles)ÚNumber)ÚDataTypeError)Ú	Quantiles)Úwarn_null_calculationc                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)Ú	QuintilesaÞ  
    Calculate the quintiles of a column based on its percentiles.

    Quintiles will be equivalent to the 20th, 40th, 60th and 80th percentiles.

    "Zeroth" (min value) and "Fifth" (max value) quintiles are included for
    reference and intuitive indexing.

    See :class:`Percentiles` for implementation details.

    This aggregation can not be applied to a :class:`.TableSet`.

    :param column_name:
        The name of a column containing :class:`.Number` data.
    c                 ó   — || _         y )N)Ú_column_name)ÚselfÚcolumn_names     ú]/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/agate/aggregations/quintiles.pyÚ__init__zQuintiles.__init__   s
   € Ø'ˆÕó    c                 óæ   — |j                   | j                     }t        |j                  t        «      st        d«      ‚t        | j                  «      j                  |«      }|rt        | |«       y y )Nz@Quintiles can only be applied to columns containing Number data.)	Úcolumnsr   Ú
isinstanceÚ	data_typer   r   r   Úrunr	   )r   ÚtableÚcolumnÚ	has_nullss       r   ÚvalidatezQuintiles.validate   s_   € Ø—‘˜t×0Ñ0Ñ1ˆä˜&×*Ñ*¬FÔ3ÜÐ bÓcÐcä˜T×.Ñ.Ó/×3Ñ3°EÓ:ˆ	áÜ! $¨Õ/ð r   c                 ó¢   — t        | j                  «      j                  |«      }t        t	        ddd«      D �cg c]  }||   ‘Œ	 c}«      S c c}w )zJ
        :returns:
            An instance of :class:`Quantiles`.
        r   ée   é   )r   r   r   r   Úrange)r   r   ÚpercentilesÚis       r   r   zQuintiles.run(   sE   € ô
 " $×"3Ñ"3Ó4×8Ñ8¸Ó?ˆä´%¸¸3ÀÓ2CÖD¨Q˜+ a›.ÒDÓEÐEùÒDs   ¹AN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   © r   r   r   r   
   s   „ ñò(ò	0óFr   r   N)Úagate.aggregations.baser   Úagate.aggregations.has_nullsr   Úagate.aggregations.percentilesr   Úagate.data_typesr   Úagate.exceptionsr   Úagate.utilsr   Úagate.warnsr	   r   r&   r   r   ú<module>r.      s(   ðÝ /Ý 1Ý 6Ý #Ý *Ý !Ý -ô%F�õ %Fr   