Ë
    Ì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)Ú	QuartilesaÛ  
    Calculate the quartiles of column based on its percentiles.

    Quartiles will be equivalent to the the 25th, 50th and 75th percentiles.

    "Zeroth" (min value) and "Fourth" (max value) quartiles 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/quartiles.pyÚ__init__zQuartiles.__init__   s
   € Ø'ˆÕó    c                 óæ   — |j                   | j                     }t        |j                  t        «      st        d«      ‚t        | j                  «      j                  |«      }|rt        | |«       y y )Nz@Quartiles can only be applied to columns containing Number data.)	Úcolumnsr   Ú
isinstanceÚ	data_typer   r   r   Úrunr	   )r   ÚtableÚcolumnÚ	has_nullss       r   ÚvalidatezQuartiles.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Quartiles.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   