Ë
    èlÖ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)ÚDecilesaÒ  
    Calculate the deciles of a column based on its percentiles.

    Deciles will be equivalent to the 10th, 20th ... 90th percentiles.

    "Zeroth" (min value) and "Tenth" (max value) deciles 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_dbt/lib/python3.12/site-packages/agate/aggregations/deciles.pyÚ__init__zDeciles.__init__   s
   € Ø'ˆÕó    c                 óæ   — |j                   | j                     }t        |j                  t        «      st        d«      ‚t        | j                  «      j                  |«      }|rt        | |«       y y )Nz>Deciles can only be applied to columns containing Number data.)	Úcolumnsr   Ú
isinstanceÚ	data_typer   r   r   Úrunr	   )r   ÚtableÚcolumnÚ	has_nullss       r   ÚvalidatezDeciles.validate   s_   € Ø—‘˜t×0Ñ0Ñ1ˆä˜&×*Ñ*¬FÔ3ÜÐ `ÓaÐaä˜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Deciles.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ˆkõ %Fr   