Ë
    èlÖié  ã                   óp   — d dl mZmZ d dlmZmZmZ d dlmZm	Z	  G d„ de	«      Z
e G d„ de
e«      «       Zy)	é    )Ú	dataclassÚfield)ÚDictÚAnyÚOptional)ÚExtensibleDbtClassMixinÚdbtClassMixinc                   ób   ‡ — e Zd ZdZdZeˆ fd„«       Zd	dedee   fˆ fd„Z	d„ Z
ed„ «       Zˆ xZS )
ÚAdditionalPropertiesMixinz±Make this class an extensible property.

    The underlying class definition must include a type definition for a field
    named '_extra' that is of type `Dict[str, Any]`.
    Tc                 ó¼   •— | j                  «       }i }|j                  «       D ]$  \  }}||vr|dvrd|vri |d<   ||d   |<   Œ |||<   Œ& |}t        ‰| �  |«      }|S )N)Ú_extrazpre-hookz	post-hookr   )Ú_get_field_namesÚitemsÚsuperÚ__pre_deserialize__)ÚclsÚdataÚcls_keysÚnew_dictÚkeyÚvalueÚ	__class__s         €úk/var/www/html/strategist-ai/venv_dbt/lib/python3.12/site-packages/dbt_common/contracts/config/properties.pyr   z-AdditionalPropertiesMixin.__pre_deserialize__   sˆ   ø€ ð ×'Ñ'Ó)ˆØˆØŸ*™*›,ò 	&‰JˆC�ð ˜(Ñ" sÐ2UÑ'UØ 8Ñ+Ø)+�H˜XÑ&Ø*/�˜Ñ" 3Ò'à %�˜’ð	&ð ˆÜ‰wÑ*¨4Ó0ˆØˆó    ÚdctÚcontextc                 ól   •— t         ‰| �  ||«      }|j                  | j                  «       d|v r|d= |S )Nr   )r   Ú__post_serialize__ÚupdateÚextra)Úselfr   r   r   r   s       €r   r   z,AdditionalPropertiesMixin.__post_serialize__,   s8   ø€ Ü‰wÑ)¨#¨wÓ7ˆØ�‰�D—J‘JÔØ�tÑØ�X�Øˆr   c                 ój   — | j                  d¬«      }|j                  |«       | j                  |«      S )NF)Ú	omit_none)Úto_dictr   Ú	from_dict)r!   Úkwargsr   s      r   Úreplacez!AdditionalPropertiesMixin.replace3   s-   € Ø�l‰l UˆlÓ+ˆØ�
‰
�6ÔØ�~‰~˜cÓ"Ð"r   c                 ó   — | j                   S ©N)r   )r!   s    r   r    zAdditionalPropertiesMixin.extra8   s   € à�{‰{Ðr   r)   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚADDITIONAL_PROPERTIESÚclassmethodr   r   r   r   r'   Úpropertyr    Ú__classcell__)r   s   @r   r   r      sT   ø„ ñð !Ðð
 óó ðñ0 dð °X¸d±^õ ò#ð
 ñó ôr   r   c                   ó4   — e Zd ZU  ee¬«      Zeeef   e	d<   y)ÚAdditionalPropertiesAllowed)Údefault_factoryr   N)
r*   r+   r,   r   Údictr   r   Ústrr   Ú__annotations__© r   r   r3   r3   =   s   … á"°4Ô8€FˆD��c�‰NÔ8r   r3   N)Údataclassesr   r   Útypingr   r   r   Údbt_common.dataclass_schemar   r	   r   r3   r8   r   r   ú<module>r<      s=   ðß (ß &Ñ &ç Nô3 ô 3ðl ô9Ð";Ð=Tó 9ó ñ9r   