Ë
    èlÖiÒ  ã                   óN   — d dl mZ d dlmZ d dlmZmZ d dlmZ  G d„ de«      Z	y)é    )ÚDecimal)ÚAggregation)ÚNumberÚText)ÚDataTypeErrorc                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)Ú	MaxLengtha_  
    Find the length of the longest string in a column.

    Note: On Python 2.7 this function may miscalcuate the length of unicode
    strings that contain "wide characters". For details see this StackOverflow
    answer: https://stackoverflow.com/a/35462951

    :param column_name:
        The name of a column containing :class:`.Text` data.
    c                 ó   — || _         y ©N)Ú_column_name)ÚselfÚcolumn_names     úb/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/agate/aggregations/max_length.pyÚ__init__zMaxLength.__init__   s
   € Ø'ˆÕó    c                 ó   — t        «       S r   )r   )r   Útables     r   Úget_aggregate_data_typez!MaxLength.get_aggregate_data_type   s	   € Ü‹xˆr   c                 ó€   — |j                   | j                     }t        |j                  t        «      st        d«      ‚y )Nz>MaxLength can only be applied to columns containing Text data.)Úcolumnsr   Ú
isinstanceÚ	data_typer   r   )r   r   Úcolumns      r   ÚvalidatezMaxLength.validate   s7   € Ø—‘˜t×0Ñ0Ñ1ˆä˜&×*Ñ*¬DÔ1ÜÐ `ÓaÐað 2r   c                 óÌ   — |j                   | j                     }|j                  «       D �cg c]  }t        |«      ‘Œ }}|st	        d«      S t	        t        |«      «      S c c}w )z5
        :returns:
            :class:`int`.
        Ú0)r   r   Úvalues_without_nullsÚlenr   Úmax)r   r   r   ÚdÚlenss        r   ÚrunzMaxLength.run   sY   € ð
 —‘˜t×0Ñ0Ñ1ˆà &× ;Ñ ;Ó =Ö>˜1”�A•Ð>ˆÐ>áÜ˜3“<Ðä”s˜4“yÓ!Ð!ùò ?s   ¬A!N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r"   © r   r   r	   r	      s   „ ñ	ò(òòbó"r   r	   N)
Údecimalr   Úagate.aggregations.baser   Úagate.data_typesr   r   Úagate.exceptionsr   r	   r'   r   r   ú<module>r,      s   ðÝ å /ß )Ý *ô#"�õ #"r   