Ë
    èlÖiS  ã                   óf   — d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ  G d„ de«      Zy	)
é    )ÚAggregation)ÚHasNulls)ÚSum)ÚNumberÚ	TimeDelta)ÚDataTypeError)Úwarn_null_calculationc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚMeanz�
    Calculate the mean of a column.

    :param column_name:
        The name of a column containing :class:`.Number` data.
    c                 ó2   — || _         t        |«      | _        y ©N)Ú_column_namer   Ú_sum)ÚselfÚcolumn_names     ú\/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/agate/aggregations/mean.pyÚ__init__zMean.__init__   s   € Ø'ˆÔÜ˜Ó$ˆ�	ó    c                 óŽ   — |j                   | j                     }t        |j                  t        t
        f«      r|j                  S y r   )Úcolumnsr   Ú
isinstanceÚ	data_typer   r   )r   ÚtableÚcolumns      r   Úget_aggregate_data_typezMean.get_aggregate_data_type   s<   € Ø—‘˜t×0Ñ0Ñ1ˆä�f×&Ñ&¬´Ð(;Ô<Ø×#Ñ#Ð#ð =r   c                 óò   — |j                   | j                     }t        |j                  t        t
        f«      st        d«      ‚t        | j                  «      j                  |«      }|rt        | |«       y y )NzHMean can only be applied to columns containing Number or TimeDelta data.)
r   r   r   r   r   r   r   r   Úrunr	   )r   r   r   Ú	has_nullss       r   ÚvalidatezMean.validate   sd   € Ø—‘˜t×0Ñ0Ñ1ˆä˜&×*Ñ*¬V´YÐ,?Ô@ÜÐ jÓkÐkä˜T×.Ñ.Ó/×3Ñ3°EÓ:ˆ	áÜ! $¨Õ/ð r   c                 ó¬   — |j                   | j                     }|j                  «       }|r)| j                  j	                  |«      }|t        |«      z  S y r   )r   r   Úvalues_without_nullsr   r   Úlen)r   r   r   ÚdataÚ	sum_totals        r   r   zMean.run%   sM   € Ø—‘˜t×0Ñ0Ñ1ˆØ×*Ñ*Ó,ˆÙØŸ	™	Ÿ™ eÓ,ˆIØœs 4›yÑ(Ð(ð r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   © r   r   r   r   	   s   „ ñò%ò$ò	0ó)r   r   N)Úagate.aggregations.baser   Úagate.aggregations.has_nullsr   Úagate.aggregations.sumr   Úagate.data_typesr   r   Úagate.exceptionsr   Úagate.warnsr	   r   r)   r   r   ú<module>r0      s#   ðÝ /Ý 1Ý &ß .Ý *Ý -ô!)ˆ;õ !)r   