Ë
    Ìih  ã                   ój   — d dl mZmZmZ d dlmZ d dlmZmZ ee	e	f   Z
dee	   fd„Z G d„ de«      Zy)	é    )ÚAnyÚListÚTuple)Ú	Mergeable)ÚValidatedStringMixinÚValidationErrorÚreturnc                  ó   — g S )a  Mypy gets upset about stuff like:

    from dataclasses import dataclass, field
    from typing import Optional, List

    @dataclass
    class Foo:
        x: Optional[List[str]] = field(default_factory=list)


    Because `list` could be any kind of list, I guess
    © r   ó    úS/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt/contracts/util.pyÚlist_strr   
   s	   € ð €Ir   c                   ó.   — e Zd ZdZdZededefd„«       Zy)Ú
IdentifierzÈOur definition of a valid Identifier is the same as what's valid for an unquoted database table name.

    That is:
    1. It can contain a-z, A-Z, 0-9, and _
    1. It cannot start with a number
    z^[^\d\W]\w*$Úvaluer	   c                 óh   — t        |t        «      sy	 | j                  |«       y# t        $ r Y yw xY w)NFT)Ú
isinstanceÚstrÚvalidater   )Úclsr   s     r   Úis_validzIdentifier.is_valid$   s9   € ä˜%¤Ô%Øð	Ø�L‰L˜Ôð øô ò 	Ùð	ús   “% ¥	1°1N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚValidationRegexÚclassmethodr   Úboolr   r   r   r   r   r      s.   „ ñð &€Oàð	˜Sð 	 Tò 	ó ñ	r   r   N)Útypingr   r   r   Údbt_common.contracts.utilr   Údbt_common.dataclass_schemar   r   r   Ú	SourceKeyr   r   r   r   r   ú<module>r#      s=   ðß #Ñ #õ 0ß Mà�#�s�(‰O€	ð�$�s‘)ó ô Ð%õ r   