Ë
    Ìiq
  ã                   ól   — d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZ  G d„ de	e   ee   «      Zy)é    )ÚGenericÚListÚSequence)ÚPydanticSemanticManifest)ÚSemanticManifestT)ÚSemanticManifestValidationRuleÚValidationErrorÚValidationIssueÚvalidate_safelyc                   ó¶   — e Zd ZdZe ed¬«      dedee   fd„«       «       Z	e ed¬«      dedee   fd„«       «       Z
e ed	«      dedee   fd
„«       «       Zy)ÚNonEmptyRulez8Check if the model contains semantic models and metrics.z+checking that the model has semantic models)Úwhats_being_doneÚsemantic_manifestÚreturnc                 óX   — g }| j                   s|j                  t        d¬«      «       |S )Nz(No semantic models present in the model.©Úmessage)Úsemantic_modelsÚappendr	   ©r   Úissuess     ún/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt_semantic_interfaces/validations/non_empty.pyÚ _check_model_has_semantic_modelsz-NonEmptyRule._check_model_has_semantic_models   s0   € ð )+ˆØ ×0Ò0Ø�M‰MÜØFôôð
 ˆó    z#checking that the model has metricsc                 óÈ   — g }d}| j                   D ]%  }|j                  D ]  }|j                  du sŒd} Œ% Œ' | j                  s|s|j	                  t        d¬«      «       |S )NFTz No metrics present in the model.r   )r   ÚmeasuresÚcreate_metricÚmetricsr   r	   )r   r   Úcreate_measure_proxy_metricsÚsemantic_modelÚmeasures        r   Ú_check_model_has_metricsz%NonEmptyRule._check_model_has_metrics   s~   € ð )+ˆð (-Ð$Ø/×?Ñ?ò 	ˆNØ)×2Ñ2ò �Ø×(Ñ(¨DÒ0Ø37Ð0Ùñð	ð !×(Ò(Ñ1MØ�M‰MÜØ>ôôð
 ˆr   zNrunning model validation rule ensuring metrics and semantic models are definedc                 óž   — g }|j                  t        j                  | ¬«      «       |j                  t        j                  | ¬«      «       |S )N)r   )Úextendr   r   r"   r   s     r   Úvalidate_manifestzNonEmptyRule.validate_manifest3   sD   € ð )+ˆØ�‰”l×CÑCÐVgÐCÓhÔiØ�‰”l×;Ñ;ÐN_Ð;Ó`ÔaØˆr   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r   r   r
   r   r"   r%   © r   r   r   r      s±   „ ÙBàÙÐ&SÔTðÐ<Tð ÐYaÐbqÑYrò ó Uó ðð ÙÐ&KÔLðÐ4Lð ÐQYÐZiÑQjò ó Mó ðð& ÙÐeÓfðð 4ðð 
�/Ñ	"ò	ó gó ñr   r   N)Útypingr   r   r   Ú9dbt_semantic_interfaces.implementations.semantic_manifestr   Ú!dbt_semantic_interfaces.protocolsr   Ú5dbt_semantic_interfaces.validations.validator_helpersr   r	   r
   r   r   r+   r   r   ú<module>r0      s;   ðß *Ñ *õõ @÷ó ô.Ð1Ð2CÑDÀgÐN_ÑF`õ .r   