Ë
    Ìiå! ã                   óF  — d dl Z d dlmZ 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mZmZmZmZmZmZmZmZmZmZ d dlmZ d dlZd dlZd dlm Z m!Z! d d	l"m#Z#m$Z$ d d
l%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z, d dl-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6m7Z7m8Z8 d dl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN d dlOmPZPmQZQ d dlRmSZS d dlTmUZUmVZV d dlWmXZXmYZYmZZZ d dl[m\Z\ d dl]m^Z^ d dl_m`Z`maZambZbmcZc d dldmeZe d dlfmgZg d dlhmiZi d dljmkZk elZmelZnelZodeem   dee/   fd„Zp G d„ dee«      Zq G d „ d!ee«      Zr G d"„ d#ee«      Zs G d$„ d%ee«      Zt G d&„ d'ee«      Zu G d(„ d)ee«      Zv G d*„ d+ee«      Zw G d,„ d-ee«      Zx G d.„ d/et«      Zy G d0„ d1ee«      Zz	 dfd2eld3eld4eel   deeel      fd5„Z{d6„ Z|d7eeC   fd8„Z}d7ee   fd9„Z~d:„ Z G d;„ d<e �j                   «      Z�e G d=„ d>«      «       Z‚e G d?„ d@e‚«      «       Zƒ edAe‚¬B«      Z„ G dC„ dDee„   «      Z…dEeBdFeldGeel   de�fdH„Z† G dI„ dJe«      Z‡ edK«      Zˆe G dL„ dMeeˆ   «      «       Z‰eee>e‰e>   f      ZŠeeeDe‰eD   f      Z‹eeeFe‰eF   f      ZŒee<   Z�eeeKe‰eK   f      ZŽeeeCe‰eC   f      Z� edNe@¬B«      Z� G dO„ dP«      Z‘e G dQ„ dR«      «       Z’e G dS„ dTee«      «       Z“ edUdV¬B«      Z” edWdX¬B«      Z•e G dY„ dZe‘ee«      «       Z– G d[„ d\e‘«      Z—ee–e—f   Z˜d]e;d^eele;f   fd_„Z™ ed`«      Zš eda«      Z›dbešd^eeše›f   dce8ddelde›f
de„Zœy)gé    N)Údefaultdict)Ú	dataclassÚfieldÚreplace)Úchain)ÚLock)ÚAnyÚCallableÚClassVarÚDefaultDictÚDictÚGenericÚListÚMappingÚMutableMappingÚOptionalÚSetÚTupleÚTypeVarÚUnion)ÚProtocol)ÚdeprecationsÚtracking)ÚDuplicateMacroInPackageErrorÚ!DuplicateMaterializationNameError)Úget_adapter_package_names)ÚBaseResourceÚDeferRelationÚ
NodeConfigÚNodeVersionÚRefArgs)ÚManifestMetadataÚUniqueIDÚWritableManifest)Ústatically_parse_ref_or_source)ÚAnySourceFileÚFileHashÚFixtureSourceFileÚSchemaSourceFileÚ
SourceFile)ÚRESOURCE_CLASS_TO_NODE_CLASSÚBaseNodeÚDocumentationÚExposureÚFunctionNodeÚGenericTestNodeÚGraphMemberNodeÚGroupÚMacroÚManifestNodeÚMetricÚ	ModelNodeÚ
SavedQueryÚSeedNodeÚSemanticModelÚSingularTestNodeÚSnapshotNodeÚSourceDefinitionÚUnitTestDefinitionÚUnitTestFileFixtureÚUnpatchedSourceDefinition)ÚSourcePatchÚUnparsedVersion)Ú	SourceKey)ÚArtifactWrittenÚUnpinnedRefNewVersionAvailable)ÚAmbiguousResourceNameRefErrorÚCompilationErrorÚDuplicateResourceNameError)Ú	get_flags)Úget_mp_context)ÚREFABLE_NODE_TYPESÚVERSIONED_NODE_TYPESÚ
AccessTypeÚNodeType)ÚdbtClassMixin)Úget_node_info)Ú
fire_event)ÚPathSetÚpackageÚreturnc                 óx   — || vry | |   }|€%|sy t        t        |j                  «       «      «      S ||v r||   S y ©N)ÚnextÚiterÚvalues)ÚstorageÚkeyrR   Úpkg_dcts       ú]/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/dbt/contracts/graph/manifest.pyÚfind_unique_id_for_packager]   d   sN   € Ø
�'ÑØà.5°c©l€Gà€ÙØäœ˜WŸ^™^Ó-Ó.Ó/Ð/Ø	�GÑ	Ø�wÑÐàó    c                   ó^   — e Zd Zdd„Zdee   fd„Zdee   ddfd„Zd	efd
„Z	d„ Z
dedefd„Zy)Ú	DocLookupÚmanifestÚManifestrS   Nc                 ó4   — i | _         | j                  |«       y rU   ©rY   Úpopulate©Úselfra   s     r\   Ú__init__zDocLookup.__init__v   ó   € Ø?AˆŒØ�‰�hÕr^   rR   c                 ó0   — t        | j                  ||«      S rU   ©r]   rY   )rg   rZ   rR   s      r\   Úget_unique_idzDocLookup.get_unique_idz   s   € Ü)¨$¯,©,¸¸WÓEÐEr^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   ©rl   Úperform_lookup)rg   rZ   rR   ra   Ú	unique_ids        r\   ÚfindzDocLookup.find}   s0   € Ø×&Ñ& s¨GÓ4ˆ	ØÐ Ø×&Ñ& y°(Ó;Ð;Ør^   Údocc                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   )ÚnamerY   rp   Úpackage_name)rg   rr   s     r\   Úadd_doczDocLookup.add_docƒ   sE   € Ø�8‰8˜4Ÿ<™<Ñ'Ø%'ˆD�L‰L˜Ÿ™Ñ"Ø36·=±=ˆ�‰�S—X‘XÑ˜s×/Ñ/Ò0r^   c                 ód   — |j                   j                  «       D ]  }| j                  |«       Œ y rU   )ÚdocsrX   rv   )rg   ra   rr   s      r\   re   zDocLookup.populateˆ   s*   € Ø—=‘=×'Ñ'Ó)ò 	ˆCØ�L‰L˜Õñ	r^   rp   c                 ó‚   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   S )NzDoc ú) found in cache but not found in manifest)rx   Ú
dbt_commonÚ
exceptionsÚDbtInternalError©rg   rp   ra   s      r\   ro   zDocLookup.perform_lookupŒ   sE   € Ø˜HŸM™MÑ)Ü×'Ñ'×8Ñ8Ø�y�kÐ!JÐKóð ð �}‰}˜YÑ'Ð'r^   ©ra   rb   rS   N)Ú__name__Ú
__module__Ú__qualname__rh   r   ÚPackageNamerl   rq   r-   rv   re   r#   ro   © r^   r\   r`   r`   u   sX   „ ó ðF¨(°;Ñ*?ó Fð ¨+Ñ!6ð À*ó ðA˜=ó Aò
ð(¨ð (¸}ô (r^   r`   c                   ób   — e Zd Zdd„Zdee   fd„Zdee   ddfd„Zd	efd
„Z	d„ Z
dedddefd„Zy)ÚSourceLookupra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zSourceLookup.__init__•   ri   r^   rR   c                 ó0   — t        | j                  ||«      S rU   rk   ©rg   Úsearch_namerR   s      r\   rl   zSourceLookup.get_unique_id™   ó   € Ü)¨$¯,©,¸ÀWÓMÐMr^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   rn   ©rg   rŠ   rR   ra   rp   s        r\   rq   zSourceLookup.findœ   ó0   € Ø×&Ñ& {°GÓ<ˆ	ØÐ Ø×&Ñ& y°(Ó;Ð;Ør^   Úsourcec                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   ©rŠ   rY   rp   ru   ©rg   r�   s     r\   Ú
add_sourcezSourceLookup.add_source¢   óM   € Ø×Ñ T§\¡\Ñ1Ø/1ˆD�L‰L˜×+Ñ+Ñ,à@F×@PÑ@Pˆ�‰�V×'Ñ'Ñ(¨×)<Ñ)<Ò=r^   c                 ó~   — |j                   j                  «       D ]   }t        |d«      sŒ| j                  |«       Œ" y )NÚsource_name)ÚsourcesrX   Úhasattrr“   )rg   ra   r�   s      r\   re   zSourceLookup.populate¨   s6   € Ø×&Ñ&×-Ñ-Ó/ò 	(ˆFÜ�v˜}Õ-Ø—‘ Õ'ñ	(r^   rp   c                 ó‚   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   S )NzSource rz   )r—   r{   r|   r}   r~   s      r\   ro   zSourceLookup.perform_lookup­   óI   € Ø˜H×,Ñ,Ñ,Ü×'Ñ'×8Ñ8Ø˜)˜Ð$MÐNóð ð ×Ñ 	Ñ*Ð*r^   r   )r€   r�   r‚   rh   r   rƒ   rl   rq   r<   r“   re   r#   ro   r„   r^   r\   r†   r†   ”   sa   „ ó ðN°(¸;Ñ2Gó Nð¨°+Ñ)>ð È*ó ðQÐ!1ó Qò(ð
+¨ð +¸Jð +ÐK[ô +r^   r†   c                   ób   — e Zd Zdd„Zdee   fd„Zdee   ddfd„Zd	efd
„Z	d„ Z
dedddefd„Zy)ÚFunctionLookupra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zFunctionLookup.__init__¶   ri   r^   rR   c                 ó0   — t        | j                  ||«      S rU   rk   r‰   s      r\   rl   zFunctionLookup.get_unique_idº   r‹   r^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   rn   r�   s        r\   rq   zFunctionLookup.find½   rŽ   r^   Úfunctionc                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   r‘   )rg   r    s     r\   Úadd_functionzFunctionLookup.add_functionÃ   sM   € Ø×Ñ t§|¡|Ñ3Ø13ˆD�L‰L˜×-Ñ-Ñ.àDL×DVÑDVˆ�‰�X×)Ñ)Ñ*¨8×+@Ñ+@ÒAr^   c                 ó~   — |j                   j                  «       D ]   }t        |d«      sŒ| j                  |«       Œ" y ©Nrt   )Ú	functionsrX   r˜   r¢   )rg   ra   r    s      r\   re   zFunctionLookup.populateÉ   s8   € Ø ×*Ñ*×1Ñ1Ó3ò 	,ˆHÜ�x Õ(Ø×!Ñ! (Õ+ñ	,r^   rp   c                 ó‚   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   S )Nz	Function rz   )r¥   r{   r|   r}   r~   s      r\   ro   zFunctionLookup.perform_lookupÎ   sI   € Ø˜H×.Ñ.Ñ.Ü×'Ñ'×8Ñ8Ø˜I˜;Ð&OÐPóð ð ×!Ñ! )Ñ,Ð,r^   r   )r€   r�   r‚   rh   r   rƒ   rl   rq   r/   r¢   re   r#   ro   r„   r^   r\   rœ   rœ   µ   s_   „ ó ðN°(¸;Ñ2Gó Nð¨°+Ñ)>ð È*ó ðW \ó Wò,ð
-¨ð -¸Jð -È<ô -r^   rœ   c                   óô   — e Zd ZU  ee«      Zee   ed<    ee«      Z	ee   ed<   dd„Z
	 dded	ee   d
ee   dee   fd„Z	 dded	ee   d
ee   dddee   f
d„Zdefd„Zd„ Zdedefd„Zd	ee   dee   fd„Zy)ÚRefableLookupÚ_lookup_typesÚ_versioned_typesra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zRefableLookup.__init__Û   ri   r^   rZ   rR   ÚversionÚnodec                 ó€   — |r|› d|› �}| j                  ||«      }t        |«      dkD  rt        |||«      ‚|r|d   S d S )Nú.vé   r   )Ú_find_unique_ids_for_packageÚlenrE   )rg   rZ   rR   r¬   r­   Ú
unique_idss         r\   rl   zRefableLookup.get_unique_idß   sU   € ñ Ø�E˜˜G˜9Ð%ˆCà×6Ñ6°s¸GÓDˆ
Üˆz‹?˜QÒÜ/°°ZÀÓFÐFá$.�:˜a‘=Ð8°DÐ8r^   Úsource_nodec                 ó®  — | j                  ||||«      }|��9| j                  ||«      }t        |t        «      �r|�€|j                  �rt        «       rút        |j                  j                  «       D �cg c]L  }t        |t        «      r:|j                  |j                  k(  r!|j                  �t        |j                  «      ‘ŒN c}«      }	|j                  €J ‚|	t        |j                  «      kD  r[t        t        t        «       |j                  |j                  t!        |j                  «      t!        |	j"                  «      ¬«      «       |S y c c}w )N)Ú	node_infoÚref_node_nameÚref_node_packageÚref_node_versionÚref_max_version)rl   ro   Ú
isinstancer6   Úis_versionedrO   ÚmaxÚnodesrX   rt   r¬   rA   Úlatest_versionrP   rD   ru   ÚstrÚv)
rg   rZ   rR   r¬   ra   r´   rp   r­   rÁ   Úmax_versions
             r\   rq   zRefableLookup.findï   s"  € ð ×&Ñ& s¨G°W¸kÓJˆ	ØÑ Ø×&Ñ& y°(Ó;ˆDô ˜4¤Õ+Ø‘OØ×%Ó%Ü!”Oô 03ð "*§¡×!6Ñ!6Ó!8öàÜ% a¬Ô3ØŸF™F d§i¡iÒ/ØŸI™IÐ1ô	 (¨¯	©	Õ2òó0�ð ×*Ñ*Ð6Ð6Ð6Ø¤°×1DÑ1DÓ!EÒEÜÜ6Ü&3£oØ*.¯)©)Ø-1×->Ñ->Ü-0°·±Ó->Ü,/°·±Ó,>ôôð ˆKØùò+s   Á6AEc                 óP  — |j                   | j                  v �r|j                  | j                  vri | j                  |j                  <   |j                  rŸ|j
                  | j                  vri | j                  |j
                  <   |j                  | j                  |j
                     |j                  <   |j                  r1|j                  | j                  |j                     |j                  <   y y |j                  | j                  |j                     |j                  <   y y rU   )	Úresource_typer©   rt   rY   r¼   rŠ   rp   ru   Úis_latest_version©rg   r­   s     r\   Úadd_nodezRefableLookup.add_node  sâ   € Ø×Ñ ×!3Ñ!3Ò3Ø�y‰y §¡Ñ,Ø*,�—‘˜TŸY™YÑ'à× Ò Ø×#Ñ#¨4¯<©<Ñ7Ø57�D—L‘L ×!1Ñ!1Ñ2ØDHÇNÁN�—‘˜T×-Ñ-Ñ.¨t×/@Ñ/@ÑAØ×)Ò)ØAEÇÁ�D—L‘L §¡Ñ+¨D×,=Ñ,=Ò>ð *ð >B¿^¹^�—‘˜TŸY™YÑ'¨×(9Ñ(9Ò:ð 4r^   c                 ód   — |j                   j                  «       D ]  }| j                  |«       Œ y rU   )r¾   rX   rÇ   ©rg   ra   r­   s      r\   re   zRefableLookup.populate+  s*   € Ø—N‘N×)Ñ)Ó+ò 	 ˆDØ�M‰M˜$Õñ	 r^   rp   c                 ó†   — ||j                   v r|j                   |   }|S t        j                  j                  d|› d�«      ‚)NzNode rz   )r¾   r{   r|   r}   ©rg   rp   ra   r­   s       r\   ro   zRefableLookup.perform_lookup/  sK   € Ø˜Ÿ™Ñ&Ø—>‘> )Ñ,ˆDð
 ˆô ×'Ñ'×8Ñ8Ø˜	�{Ð"KÐLóð r^   c                 ó–   — || j                   vrg S | j                   |   }|€|sg S t        |j                  «       «      S ||v r||   gS g S rU   )rY   ÚlistrX   )rg   rZ   rR   r[   s       r\   r±   z*RefableLookup._find_unique_ids_for_package8  s[   € Ø�d—l‘lÑ"ØˆIà26·,±,¸sÑ2Cˆàˆ?ÙØ�	ä˜GŸN™NÓ,Ó-Ð-Ø˜ÑØ˜GÑ$Ð%Ð%àˆIr^   r   rU   )r€   r�   r‚   ÚsetrJ   r©   r   Ú__annotations__rK   rª   rh   rÀ   r   rƒ   r    r1   rl   rq   r4   rÇ   re   r#   ro   r   r±   r„   r^   r\   r¨   r¨   Ö   sþ   … á#&Ð'9Ó#:€M�8˜C‘=Ó:Ù&)Ð*>Ó&?Ð�h˜s‘mÓ?ó ð +/ñ9àð9ð ˜+Ñ&ð9ð ˜+Ñ&ð	9ð
 �Ñ'ó9ð, 26ñ,àð,ð ˜+Ñ&ð,ð ˜+Ñ&ð	,ð
 ð,ð ˜oÑ.ó,ð\L˜\ó Lò ð¨ð ¸|ó ð¸À+Ñ9Nð ÐSWÐX[ÑS\ô r^   r¨   c                   ób   — e Zd Zdd„Zdee   fd„Zdee   ddfd„Zd	efd
„Z	d„ Z
dedddefd„Zy)ÚMetricLookupra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zMetricLookup.__init__J  ri   r^   rR   c                 ó0   — t        | j                  ||«      S rU   rk   r‰   s      r\   rl   zMetricLookup.get_unique_idN  r‹   r^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   rn   r�   s        r\   rq   zMetricLookup.findQ  rŽ   r^   Úmetricc                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   r‘   )rg   rÕ   s     r\   Ú
add_metriczMetricLookup.add_metricW  r”   r^   c                 ó~   — |j                   j                  «       D ]   }t        |d«      sŒ| j                  |«       Œ" y r¤   )ÚmetricsrX   r˜   r×   )rg   ra   rÕ   s      r\   re   zMetricLookup.populate]  s6   € Ø×&Ñ&×-Ñ-Ó/ò 	(ˆFÜ�v˜vÕ&Ø—‘ Õ'ñ	(r^   rp   c                 ó‚   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   S )NzMetric rz   )rÙ   r{   r|   r}   r~   s      r\   ro   zMetricLookup.perform_lookupb  rš   r^   r   )r€   r�   r‚   rh   r   rƒ   rl   rq   r5   r×   re   r#   ro   r„   r^   r\   rÑ   rÑ   I  s_   „ ó ðN°(¸;Ñ2Gó Nð¨°+Ñ)>ð È*ó ðQ ó Qò(ð
+¨ð +¸Jð +È6ô +r^   rÑ   c                   óf   — e Zd ZdZdd„Zdee   fd„Zdee   ddfd	„Zd
e	fd„Z
d„ Zdeddde	fd„Zy)ÚSavedQueryLookupz+Lookup utility for finding SavedQuery nodesra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zSavedQueryLookup.__init__m  ri   r^   rR   c                 ó0   — t        | j                  ||«      S rU   rk   r‰   s      r\   rl   zSavedQueryLookup.get_unique_idq  r‹   r^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   rn   r�   s        r\   rq   zSavedQueryLookup.findt  rŽ   r^   Úsaved_queryc                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   r‘   )rg   rà   s     r\   Úadd_saved_queryz SavedQueryLookup.add_saved_queryz  sM   € Ø×"Ñ"¨$¯,©,Ñ6Ø46ˆD�L‰L˜×0Ñ0Ñ1àJU×J_ÑJ_ˆ�‰�[×,Ñ,Ñ-¨k×.FÑ.FÒGr^   c                 ó~   — |j                   j                  «       D ]   }t        |d«      sŒ| j                  |«       Œ" y r¤   )Úsaved_queriesrX   r˜   râ   )rg   ra   rà   s      r\   re   zSavedQueryLookup.populate€  s8   € Ø#×1Ñ1×8Ñ8Ó:ò 	2ˆKÜ�{ FÕ+Ø×$Ñ$ [Õ1ñ	2r^   rp   c                 ó‚   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   S )NzSavedQUery rz   )rä   r{   r|   r}   r~   s      r\   ro   zSavedQueryLookup.perform_lookup…  sI   € Ø˜H×2Ñ2Ñ2Ü×'Ñ'×8Ñ8Ø˜i˜[Ð(QÐRóð ð ×%Ñ% iÑ0Ð0r^   r   )r€   r�   r‚   Ú__doc__rh   r   rƒ   rl   rq   r7   râ   re   r#   ro   r„   r^   r\   rÜ   rÜ   j  sb   „ Ù5ó ðN°(¸;Ñ2Gó Nð¨°+Ñ)>ð È*ó ð`¨:ó `ò2ð
1¨ð 1¸Jð 1È:ô 1r^   rÜ   c            	       óz   — e Zd ZdZdd„Zdedee   fd	„Zdedee   dddee	   fd
„Z
de	fd„Zdd„Zdeddde	fd„Zy)ÚSemanticModelByMeasureLookupz¬Lookup utility for finding SemanticModel by measure

    This is possible because measure names are supposed to be unique across
    the semantic models in a manifest.
    ra   rb   rS   Nc                 óN   — t        t        «      | _        | j                  |«       y rU   )r   ÚdictrY   re   rf   s     r\   rh   z%SemanticModelByMeasureLookup.__init__”  s   € ÜFQÔRVÓFWˆŒØ�‰�hÕr^   rŠ   rR   c                 ó0   — t        | j                  ||«      S rU   rk   r‰   s      r\   rl   z*SemanticModelByMeasureLookup.get_unique_id˜  r‹   r^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y)z5Tries to find a SemanticModel based on a measure nameNrn   r�   s        r\   rq   z!SemanticModelByMeasureLookup.find›  s2   € ð ×&Ñ& {°GÓ<ˆ	ØÐ Ø×&Ñ& y°(Ó;Ð;Ør^   Úsemantic_modelc                 ó†   — |j                   D ]2  }|j                  | j                  |j                     |j                  <   Œ4 y)zQSets all measures for a SemanticModel as paths to the SemanticModel's `unique_id`N)Úmeasuresrp   rY   rt   ru   )rg   rí   Úmeasures      r\   Úaddz SemanticModelByMeasureLookup.add¤  s<   € à%×.Ñ.ò 	_ˆGØFT×F^ÑF^ˆD�L‰L˜Ÿ™Ñ& ~×'BÑ'BÒCñ	_r^   c                 óø   — |j                   j                  «       D ]  }| j                  |¬«       Œ |j                  j                  «       D ],  }|D ]%  }t	        |t
        «      sŒ| j                  |¬«       Œ' Œ. y)zVPopulate storage with all the measure + package paths to the Manifest's SemanticModels)rí   N)Úsemantic_modelsrX   rñ   Údisabledr»   r9   )rg   ra   rí   rô   r­   s        r\   re   z%SemanticModelByMeasureLookup.populate©  ss   € à&×6Ñ6×=Ñ=Ó?ò 	4ˆNØ�H‰H NˆHÕ3ð	4à ×)Ñ)×0Ñ0Ó2ò 	2ˆHØ ò 2�Ü˜d¤MÕ2Ø—H‘H¨D�HÕ1ñ2ñ	2r^   rp   c                 ó  — |j                   j                  |«      }|j                  j                  |«      }t        |t        «      r|S |�t        |d   t        «      r|d   S t
        j                  j                  d|› d�«      ‚)z.Tries to get a SemanticModel from the Manifestr   zSemantic model `z*` found in cache but not found in manifest)ró   Úgetrô   r»   r9   r{   r|   r}   )rg   rp   ra   Úenabled_semantic_modelÚdisabled_semantic_models        r\   ro   z+SemanticModelByMeasureLookup.perform_lookup²  sŒ   € à:B×:RÑ:R×:VÑ:VÐW`Ó:aÐØ2:×2CÑ2C×2GÑ2GÈ	Ó2RÐäÐ,¬mÔ<Ø)Ð)Ø$Ð0´ZØ# AÑ&¬ô6
ð +¨1Ñ-Ð-ä×'Ñ'×8Ñ8Ø" 9 +Ð-WÐXóð r^   r   ©ra   rb   )r€   r�   r‚   ræ   rh   rÀ   r   rƒ   rl   r9   rq   rñ   re   r#   ro   r„   r^   r\   rè   rè   �  sƒ   „ ñó ðN¨ð N°xÀÑ7Ló NðØðØ)1°+Ñ)>ðØJTðà	�-Ñ	 óð_ -ó _ó
2ð¨ð ¸Jð È=ô r^   rè   c                   ón   — e Zd Zdd„Zdd„Zdeddfd„Z	 	 ddee   dee	   d	ee
e      dee
e      fd
„Zy)ÚDisabledLookuprS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zDisabledLookup.__init__Å  s   € Ø@BˆŒØ�‰�hÕr^   c                 óœ   — t        t        j                  |j                  j	                  «       «      «      D ]  }| j                  |«       Œ y rU   )rÍ   r   Úfrom_iterablerô   rX   rÇ   rÉ   s      r\   re   zDisabledLookup.populateÉ  s<   € Üœ×,Ñ,¨X×->Ñ->×-EÑ-EÓ-GÓHÓIò 	 ˆDØ�M‰M˜$Õñ	 r^   r­   c                 óf  — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      vr&g | j                  |j                      |j                  <   | j                  |j                      |j                     j                  |«       y rU   )rŠ   rY   ru   ÚappendrÆ   s     r\   rÇ   zDisabledLookup.add_nodeÍ  sŒ   € Ø×Ñ 4§<¡<Ñ/Ø-/ˆD�L‰L˜×)Ñ)Ñ*Ø×Ñ D§L¡L°×1AÑ1AÑ$BÑBØ@BˆD�L‰L˜×)Ñ)Ñ*¨4×+<Ñ+<Ñ=Ø�‰�T×%Ñ%Ñ& t×'8Ñ'8Ñ9×@Ñ@ÀÕFr^   rR   r¬   Úresource_typesc                 ó  — |r|› d|› �}|| j                   vry | j                   |   }g }|€&|sy t        t        |j                  «       «      «      }n||v r||   }ny |€|S g }|D ]"  }|j                  |v sŒ|j                  |«       Œ$ |sy |S )Nr¯   )rY   rV   rW   rX   rÄ   r   )	rg   rŠ   rR   r¬   r  r[   r¾   Ú	new_nodesr­   s	            r\   rq   zDisabledLookup.findÖ  s¸   € ñ Ø(˜M¨¨G¨9Ð5ˆKà˜dŸl™lÑ*Øà37·<±<ÀÑ3LˆàˆØˆ?ÙØäœT '§.¡.Ó"2Ó3Ó4‘Ø˜ÑØ˜GÑ$‰EààÐ!ØˆLàˆIØò +�Ø×%Ñ%¨Ò7Ø×$Ñ$ TÕ*ð+ñ Øà Ð r^   r   rù   )NN)r€   r�   r‚   rh   re   r1   rÇ   r   rƒ   r    r   rM   r	   rq   r„   r^   r\   rû   rû   Ä  ss   „ ó ó ðG˜_ð G°ó Gð *.Ø37ñ$!ð ˜+Ñ&ð$!ð ˜+Ñ&ð	$!ð
 !  h¡Ñ0ð$!ð 
�$�s‘)Ñ	ô$!r^   rû   c                   ób   — e Zd ZU  eej
                  g«      Zee   ed<    e«       Z	ee   ed<   y)ÚAnalysisLookupr©   rª   N)
r€   r�   r‚   rÎ   rM   ÚAnalysisr©   r   rÏ   rª   r„   r^   r\   r  r  ý  s/   … Ù#&¨×(9Ñ(9Ð':Ó#;€M�8˜C‘=Ó;Ù&)£eÐ�h˜s‘mÔ+r^   r  c                   ó|   — e Zd Zdd„Zdee   dee   fd„Zdee   dddee   fd„Z	d	eddfd
„Z
dd„Zdedddefd„Zy)ÚSingularTestLookupra   rb   rS   Nc                 ó4   — i | _         | j                  |«       y rU   rd   rf   s     r\   rh   zSingularTestLookup.__init__  ri   r^   rR   c                 ó0   — t        | j                  ||«      S rU   rk   r‰   s      r\   rl   z SingularTestLookup.get_unique_id  r‹   r^   c                 óP   — | j                  ||«      }|�| j                  ||«      S y rU   rn   r�   s        r\   rq   zSingularTestLookup.find
  s2   € ð ×&Ñ& {°GÓ<ˆ	ØÐ Ø×&Ñ& y°(Ó;Ð;Ør^   r�   c                 óÆ   — |j                   | j                  vri | j                  |j                   <   |j                  | j                  |j                      |j                  <   y rU   r‘   r’   s     r\   Úadd_singular_testz$SingularTestLookup.add_singular_test  r”   r^   c                 ó†   — |j                   j                  «       D ]$  }t        |t        «      sŒ| j	                  |«       Œ& y rU   )r¾   rX   r»   r:   r  rÉ   s      r\   re   zSingularTestLookup.populate  s7   € Ø—N‘N×)Ñ)Ó+ò 	-ˆDÜ˜$Ô 0Õ1Ø×&Ñ& tÕ,ñ	-r^   rp   c                 óª   — ||j                   vr#t        j                  j                  d|› d�«      ‚|j                   |   }t	        |t
        «      sJ ‚|S )NzSingular test rz   )r¾   r{   r|   r}   r»   r:   rË   s       r\   ro   z!SingularTestLookup.perform_lookup  sZ   € Ø˜HŸN™NÑ*Ü×'Ñ'×8Ñ8Ø   Ð+TÐUóð ð �~‰~˜iÑ(ˆÜ˜$Ô 0Ô1Ð1Ð1Øˆr^   r   )r€   r�   r‚   rh   r   rƒ   r#   rl   r:   rq   r  re   ro   r„   r^   r\   r  r    s‡   „ ó ðN°(¸;Ñ2Gð NÈHÐU]ÑL^ó NðØ$,¨[Ñ$9ðØEOðà	Ð"Ñ	#óðQÐ(8ð Q¸Tó Qó-ð
¨ð ¸Jð ÐK[ô r^   r  Úcurrent_projectÚnode_packageÚtarget_packagec                 óZ   — |�|gS | |k(  r| d gS t        «       j                  r|| d gS | |d gS rU   )rH   Ú-require_ref_searches_node_package_before_root)r  r  r  s      r\   Ú_packages_to_searchr  '  sK   € ð
 Ð!ØÐÐØ	˜LÒ	(Ø Ð&Ð&ä‹;×DÒDØ  /°4Ð8Ð8à# \°4Ð8Ð8r^   c                 óh   — | j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}S c c}}w )zeGiven a dictionary, sort each value. This makes output deterministic,
    which helps for tests.
    )ÚitemsÚsorted)ÚdctÚkrÁ   s      r\   Ú_sort_valuesr  7  s*   € ð &)§Y¡Y£[×1™T˜Q ˆAŒv�a‹y‰LÓ1Ð1ùÓ1s   ”.r¾   c                 ó@  — i }| D �ci c]  }|j                   g “Œ }}| D ]c  }|j                  dd ||j                   <   ||j                      D ]3  }||j                  «       v sŒ||   j                  |j                   «       Œ5 Œe t	        |«      t	        |«      fS c c}w )z­Build the forward and backward edges on the given list of ManifestNodes
    and return them as two separate dictionaries, each mapping unique IDs to
    lists of edges.
    N)rp   Údepends_on_nodesÚkeysr   r  )r¾   Úbackward_edgesÚnÚforward_edgesr­   rp   s         r\   Úbuild_node_edgesr"  >  s­   € ð
 ,.€NàDIÖ*J¸q¨1¯;©;¸©?Ð*J€MÐ*JØò @ˆØ)-×)>Ñ)>¹qÐ)Aˆ�t—~‘~Ñ&Ø'¨¯©Ñ7ò 	@ˆIØ˜M×.Ñ.Ó0Ò0Ø˜iÑ(×/Ñ/°·±Õ?ñ	@ð@ô
 ˜Ó&¬°^Ó(DÐDÐDùò +Ks   ‡Bc                 ó8  — | D �ci c]7  }|j                   j                  d«      s|j                  sŒ+|j                   g “Œ9 }}| D ]D  }|j                  D ]3  }||j                  «       v sŒ||   j	                  |j                   «       Œ5 ŒF t        |«      S c c}w )NÚmacro)rp   Ú
startswithÚdepends_on_macrosr  r   r  )r¾   r   r!  r­   rp   s        r\   Úbuild_macro_edgesr'  O  s¡   € à!&ö+Ø¨!¯+©+×*@Ñ*@ÀÔ*IÈQ×M`ÓM`ˆ�‰�R‰ð+€Mð +ð ò @ˆØ×/Ñ/ò 	@ˆIØ˜M×.Ñ.Ó0Ò0Ø˜iÑ(×/Ñ/°·±Õ?ñ	@ð@ô ˜Ó&Ð&ùò+s
   …,B²Bc                 óD   — | j                  | j                  d¬«      «      S )NT©Ú	omit_none)Ú	from_dictÚto_dict)Úvalues    r\   Ú	_deepcopyr.  Z  s   € Ø�?‰?˜5Ÿ=™=°4˜=Ó8Ó9Ð9r^   c                   ó   — e Zd ZdZdZdZy)ÚLocalityr°   é   é   N)r€   r�   r‚   ÚCoreÚImportedÚRootr„   r^   r\   r0  r0  ^  s   „ Ø€DØ€HØ�Dr^   r0  c                   óB   — e Zd ZU eed<   eed<   dedefd„Zdedefd„Z	y)ÚMacroCandidateÚlocalityr$  ÚotherrS   c                 ó`   — t        |t        «      st        S | j                  |j                  k(  S rU   ©r»   r7  ÚNotImplementedr8  ©rg   r9  s     r\   Ú__eq__zMacroCandidate.__eq__i  s%   € Ü˜%¤Ô0Ü!Ð!Ø�}‰} §¡Ñ.Ð.r^   c                 ó˜   — t        |t        «      st        S | j                  |j                  k  ry| j                  |j                  kD  ryy©NTFr;  r=  s     r\   Ú__lt__zMacroCandidate.__lt__n  s;   € Ü˜%¤Ô0Ü!Ð!Ø�=‰=˜5Ÿ>™>Ò)ØØ�=‰=˜5Ÿ>™>Ò)ØØr^   N)
r€   r�   r‚   r0  rÏ   r3   ÚobjectÚboolr>  rA  r„   r^   r\   r7  r7  d  s3   … àÓØƒLð/˜Fð / tó /ð
˜Fð  tô r^   r7  c                   óV   — e Zd ZU eed<   edededd fd„«       Zdede	fd„Z
dede	fd„Zy)	ÚMaterializationCandidateÚspecificityÚ	candidaterS   c                 ó@   —  | |j                   |j                  |¬«      S )N)r8  r$  rF  ©r8  r$  )ÚclsrG  rF  s      r\   Ú
from_macroz#MaterializationCandidate.from_macro€  s"   € áØ×'Ñ'Ø—/‘/Ø#ô
ð 	
r^   r9  c                 óÊ   — t        |t        «      st        S | j                  |j                  k(  xr | j                  |j                  k(  }|rt        | j                  |«      ‚|S rU   )r»   rE  r<  rF  r8  r   r$  )rg   r9  Úequals      r\   r>  zMaterializationCandidate.__eq__ˆ  sT   € Ü˜%Ô!9Ô:Ü!Ð!Ø× Ñ  E×$5Ñ$5Ñ5ÒY¸$¿-¹-È5Ï>É>Ñ:YˆÙÜ3°D·J±JÀÓFÐFàˆr^   c                 ó   — t        |t        «      st        S | j                  |j                  kD  ry| j                  |j                  k  ry| j                  |j                  k  ry| j                  |j                  kD  ryyr@  )r»   rE  r<  rF  r8  r=  s     r\   rA  zMaterializationCandidate.__lt__‘  sj   € Ü˜%Ô!9Ô:Ü!Ð!Ø×Ñ˜e×/Ñ/Ò/ØØ×Ñ˜e×/Ñ/Ò/ØØ�=‰=˜5Ÿ>™>Ò)ØØ�=‰=˜5Ÿ>™>Ò)ØØr^   N)r€   r�   r‚   ÚintrÏ   Úclassmethodr7  rK  rB  rC  r>  rA  r„   r^   r\   rE  rE  x  sX   … ð Óàð
 >ð 
Àð 
ÐHbò 
ó ð
ð˜Fð  tó ð˜Fð  tô r^   rE  ÚM)Úboundc                   óD   — e Zd Z	 ddeee      dee   fd„Zdee   fd„Z	y)ÚCandidateListNÚvalid_localitiesrS   c                 ó|   — | sy| j                  «        |€| d   S t        | «      D ]  }|j                  |v sŒ|c S  y)zß
        Obtain the last (highest precedence) MacroCandidate from the CandidateList of any locality in valid_localities.
        If valid_localities is not specified, return the last MacroCandidate of any locality.
        Néÿÿÿÿ)ÚsortÚreversedr8  )rg   rU  rG  s      r\   Úlast_candidatezCandidateList.last_candidate£  sO   € ñ ØØ�	‰	ŒàÐ#Ø˜‘8ˆOä! $›ò 	!ˆIØ×!Ñ!Ð%5Ò5Ø Ò ð	!ð r^   c                 óB   — | j                  «       }|�|j                  S d S rU   )rZ  r$  )rg   rZ  s     r\   ÚlastzCandidateList.last·  s&   € Ø×,Ñ,Ó.ˆØ'5Ð'Aˆ~×#Ñ#ÐKÀtÐKr^   rU   )
r€   r�   r‚   r   r   r0  r7  rZ  r3   r\  r„   r^   r\   rT  rT  ¢  s:   „ à;?ñØ (¨¨h©Ñ 8ðà	�.Ñ	!óð(L�h˜u‘oô Lr^   rT  r$  Úroot_project_nameÚinternal_packagesc                 óœ   — | j                   |k(  rt        j                  S | j                   |v rt        j                  S t        j                  S rU   )ru   r0  r5  r3  r4  )r$  r]  r^  s      r\   Ú_get_localityr`  ¼  s@   € Ø×ÑÐ.Ò.Ü�}‰}ÐØ	×	Ñ	Ð0Ñ	0Ü�}‰}Ðä× Ñ Ð r^   c                   ó8   — e Zd ZU eed<   eed<   edefd„«       Zy)Ú
SearchablerÄ   ru   rS   c                 ó   — t        d«      ‚)Nzsearch_name not implemented)ÚNotImplementedError©rg   s    r\   rŠ   zSearchable.search_nameÉ  s   € ä!Ð"?Ó@Ð@r^   N)r€   r�   r‚   rM   rÏ   rÀ   ÚpropertyrŠ   r„   r^   r\   rb  rb  Å  s*   … ØÓØÓàðA˜Sò Aó ñAr^   rb  ÚDc                   ó   — e Zd ZU eed<   y)ÚDisabledÚtargetN)r€   r�   r‚   rg  rÏ   r„   r^   r\   ri  ri  Ñ  s   … à„Ir^   ri  ÚTc            
       óX  — e Zd Zd„ Zdededee   dee   fd„Zdededee   dee   fd„Z		 dd	eded
ee   dee   fd„Z
	 ddededeeegef      defd„Zdeeee   f   fd„Zedeeef   deeee   f   fd„«       Zdeeeeef   f   fd„Zedeeef   deeeeef   f   fd„«       Zy)ÚMacroMethodsc                 ó<   — g | _         i | _        i | _        i | _        y rU   )ÚmacrosÚmetadataÚ_macros_by_nameÚ_macros_by_packagere  s    r\   rh   zMacroMethods.__init__ô  s    € ØˆŒØˆŒØ!ˆÔØ"$ˆÕr^   rt   r]  rR   rS   c                 óx   ‡— d}‰�dt         dt        fˆfd„}| j                  |||¬«      }|j                  «       S )a  Find a MacroCandidate in the graph by its name and package name, or None for
        any package. The root project name is used to determine priority:
         - locally defined macros come first
         - then imported macros
         - then macros defined in the root project
        NrG  rS   c                 ó6   •— ‰| j                   j                  k(  S rU   )r$  ru   )rG  rR   s    €r\   Úfilterz9MacroMethods.find_macro_candidate_by_name.<locals>.filter  s   ø€ Ø )§/¡/×">Ñ">Ñ>Ð>r^   ©rt   r]  ru  )r7  rC  Ú_find_macros_by_namerZ  )rg   rt   r]  rR   ru  Ú
candidatess      `  r\   Úfind_macro_candidate_by_namez)MacroMethods.find_macro_candidate_by_nameú  sU   ø€ ð >BˆØÐð?¤.ð ?´Tõ ?ð %)×$=Ñ$=ØØ/Øð %>ó %
ˆ
ð ×(Ñ(Ó*Ð*r^   c                 óJ   — | j                  |||¬«      }|r|j                  S d S )N©rt   r]  rR   )ry  r$  )rg   rt   r]  rR   Úmacro_candidates        r\   Úfind_macro_by_namezMacroMethods.find_macro_by_name  s6   € ð ×;Ñ;ØÐ):ÀGð <ó 
ˆñ )8ˆ×$Ñ$ÐA¸TÐAr^   NÚ	componentÚimported_packagec                 óx   ‡— dt         dt        fˆfd„}| j                  d|› d�||¬«      }|j                  «       S )a*  
        The default `generate_X_name` macros are similar to regular ones, but only
        includes imported packages when searching for a package.
        - if package is not provided:
            - if there is a `generate_{component}_name` macro in the root
              project, return it
            - return the `generate_{component}_name` macro from the 'dbt'
              internal project
        - if package is provided
            - return the `generate_{component}_name` macro from the imported
              package, if one exists
        rG  rS   c                 ó²   •— ‰r8| j                   t        j                  k(  xr ‰| j                  j                  k(  S | j                   t        j                  k7  S rU   )r8  r0  r4  r$  ru   )rG  r  s    €r\   ru  z8MacroMethods.find_generate_macro_by_name.<locals>.filter)  sP   ø€ Ùà×&Ñ&¬(×*;Ñ*;Ñ;ò IØ(¨I¯O©O×,HÑ,HÑHðð
 !×)Ñ)¬X×->Ñ->Ñ>Ð>r^   Ú	generate_Ú_namerv  )r7  rC  rw  r\  )rg   r~  r]  r  ru  rx  s      `  r\   Úfind_generate_macro_by_namez(MacroMethods.find_generate_macro_by_name  sN   ø€ ð 	?œnð 	?´õ 	?ð %)×$=Ñ$=Ø˜Y˜K uÐ-Ø/Øð %>ó %
ˆ
ð �‰Ó Ð r^   ru  c                 ó  — t        «       }| j                  «       }||vr|S t        t        | j                  j
                  «      «      }||   D ]6  }t        t        |||«      |¬«      }|�	 ||«      sŒ&|j                  |«       Œ8 |S )zFind macros by their name.rI  )	rT  Úget_macros_by_namerÎ   r   rp  Úadapter_typer7  r`  r   )	rg   rt   r]  ru  rx  Úmacros_by_nameÚpackagesr$  rG  s	            r\   rw  z!MacroMethods._find_macros_by_name:  s“   € ô %2£Oˆ
à×0Ñ0Ó2ˆØ�~Ñ%ØÐäÔ0°·±×1KÑ1KÓLÓMˆØ# DÑ)ò 	-ˆEÜ&Ü& uÐ.?ÀÓJØôˆIð ˆ~¡¨	Õ!2Ø×!Ñ! )Õ,ð	-ð Ðr^   c                 ór   — | j                   € | j                  | j                  «      | _         | j                   S rU   )rq  Ú_build_macros_by_namero  re  s    r\   r†  zMacroMethods.get_macros_by_nameR  s3   € Ø×ÑÐ'ð $(×#=Ñ#=¸d¿k¹kÓ#JˆDÔ à×#Ñ#Ð#r^   ro  c                 óª   — i }| j                  «       D ]=  }|j                  |vrg ||j                  <   ||j                     j                  |«       Œ? |S rU   )rX   rt   r   )ro  rˆ  r$  s      r\   r‹  z"MacroMethods._build_macros_by_nameZ  sW   € ð
 24ˆØ—]‘]“_ò 	5ˆEØ�z‰z Ñ/Ø-/�˜uŸz™zÑ*à˜5Ÿ:™:Ñ&×-Ñ-¨eÕ4ð		5ð Ðr^   c                 ór   — | j                   € | j                  | j                  «      | _         | j                   S rU   )rr  Ú_build_macros_by_packagero  re  s    r\   Úget_macros_by_packagez"MacroMethods.get_macros_by_packageh  s3   € Ø×"Ñ"Ð*ð '+×&CÑ&CÀDÇKÁKÓ&PˆDÔ#à×&Ñ&Ð&r^   c                 óª   — i }| j                  «       D ]=  }|j                  |vri ||j                  <   ||j                     }|||j                  <   Œ? |S rU   )rX   ru   rt   )ro  Úmacros_by_packager$  rˆ  s       r\   rŽ  z%MacroMethods._build_macros_by_packagep  se   € ð :<ÐØ—]‘]“_ò 	/ˆEØ×!Ñ!Ð):Ñ:Ø8:Ð! %×"4Ñ"4Ñ5Ø.¨u×/AÑ/AÑBˆNØ).ˆN˜5Ÿ:™:Ò&ð		/ð !Ð r^   rU   )r€   r�   r‚   rh   rÀ   r   r7  ry  r3   r}  r„  r
   rC  rT  rw  r   r   r†  Ústaticmethodr   r‹  r�  rŽ  r„   r^   r\   rm  rm  ò  s“  „ ò%ð+Øð+Ø,/ð+Ø:BÀ3¹-ð+à	�.Ñ	!ó+ð.BØðBØ,/ðBØ:BÀ3¹-ðBà	�%‰óBð Y]ñ!Øð!Ø14ð!ØHPÐQTÉð!à	�%‰ó!ðJ >Bñ	àðð ðð ˜ >Ð"2°DÐ"8Ñ9Ñ:ð	ð
 
óð0$ D¨¨d°5©kÐ)9Ñ$:ó $ð ð g¨c°5¨jÑ&9ð ¸dÀ3ÈÈUÉÐCSÑ>Tò ó ðð' t¨C°°c¸5°jÑ1AÐ,AÑ'Bó 'ð ð
!¨°°e°Ñ)<ð 
!ÀÀcÈ4ÐPSÐUZÐPZÑK[ÐF[ÑA\ò 
!ó ñ
!r^   rm  c                   ó*   — e Zd ZU dZeed<   dZeed<   y)ÚParsingInfor   Ú!static_analysis_parsed_path_countÚstatic_analysis_path_countN)r€   r�   r‚   r•  rO  rÏ   r–  r„   r^   r\   r”  r”  ~  s   … à-.Ð% sÓ.Ø&'Ð Ô'r^   r”  c                   óô   — e Zd ZU  eej
                  ¬«      Zeed<    eej
                  ¬«      Zeed<    eej
                  ¬«      Z	eed<    eej
                  ¬«      Z
eed<    ee¬«      Zeeef   ed<   y)ÚManifestStateCheck©Údefault_factoryÚ	vars_hashÚproject_env_vars_hashÚprofile_env_vars_hashÚprofile_hashÚproject_hashesN)r€   r�   r‚   r   r'   Úemptyr›  rÏ   rœ  r�  rž  rê   rŸ  r   rÀ   r„   r^   r\   r˜  r˜  „  sh   … á°·±Ô?€IˆxÓ?Ù&+¸H¿N¹NÔ&KÐ˜8ÓKÙ&+¸H¿N¹NÔ&KÐ˜8ÓKÙ"°8·>±>ÔB€L�(ÓBÙ49È$Ô4O€N�N 3¨ =Ñ1ÔOr^   r˜  Ú
NodeClassTr,   ÚResourceClassTr   c                   óÐ
  — e Zd ZU dZ ee¬«      Zeee	f   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d	<    ee¬«      Zeeef   e
d
<    ee¬«      Zeeef   e
d<    ee¬«      Zeeef   e
d<    ee¬«      Zee
d<    ee¬«      Ze eef   e
d<    ee!¬«      Z"e!e
d<    ee¬«      Z#ee$e%f   e
d<    ee¬«      Z&eee'e(   f   e
d<    ee¬«      Z)eeef   e
d<    ee¬«      Z*eee+f   e
d<    ee¬«      Z,eee-f   e
d<    ee¬«      Z.eee/f   e
d<    ee¬«      Z0eee1f   e
d<    edd„ d„ dœ¬«      Z2e3e4   e
d<    edd„ d„ dœ¬«      Z5e3e6   e
d<    edd„ d„ dœ¬«      Z7e3e8   e
d<    edd „ d „ dœ¬«      Z9e3e:   e
d!<    edd"„ d"„ dœ¬«      Z;e3e<   e
d#<    edd$„ d$„ dœ¬«      Z=e3e>   e
d%<    edd&„ d&„ dœ¬«      Z?e3e@   e
d'<    edd(„ d(„ dœ¬«      ZAe3eB   e
d)<    edd*„ d*„ dœ¬«      ZCe3eD   e
d+<    edd,„ d,„ dœ¬«      ZEe3eF   e
d-<    eeGd.„ d.„ dœ¬/«      ZHeGe
d0<    e eI«       j”                  d1„ d1„ dœ¬/«      ZKeJe
d2<    edd3„ d3„ dœ¬«      ZLe3e ee'e   f      e
d4<    edd5„ d5„ dœ¬«      ZMe3e ee eef   f      e
d6<   d¨d7e3e    fd8„ZNeOd9„ «       ZPd:„ ZQd;„ ZRd<ed=e'e   fd>„ZSd?ed@ed<edAeTd=eUf
dB„ZVd?ed@ed<ed=e3e   fdC„ZWd=eXeeYf   fdD„ZZd¨dE„Z[dF„ Z\dG„ Z]dH„ Z^dI„ Z_dJ„ Z`dK„ ZaeOdLebd=d fdM„«       ZcdNeeedf   fdO„ZedNeee'ed   f   fdP„ZfeOdQeXeegf   fdR„«       ZheOdQe3eXee'eg   f      fdS„«       Zid©dT„ZjdU„ ZkdVed=e(fdW„Zlemd=e4fdX„«       ZndY„ Zoemd=e6fdZ„«       Zpd[„ Zqemd=e8fd\„«       Zremd=e:fd]„«       Zsemd=e<fd^„«       Ztemd=e>fd_„«       Zud`„ Zvemd=e@fda„«       Zwdb„ Zxemd=eBfdc„«       Zyemd=eDfdd„«       Zzemd=eFfde„«       Z{emdf„ «       Z|dge(dhedie3e   dje3e}   dkedled=e~fdm„Zdnedoedkedled=e€f
dp„Z�dqedre3e   dkedled=e‚f
ds„Zƒdtedue3e   dkedled=e„f
dv„Z…dwedxe3e   dkedled=e†f
dy„Z‡	 d¨dzedkedled{e3e   d=e3e+   f
d|„Zˆd}ed~e3e   dkedled=e3e   f
d„Z‰d€e(d�e~d‚e3eX   d=eŠfdƒ„Z‹d€e(d�e~d‚e3eX   d=eŠfd„„ZŒdªd…„Z�d†eŽd‡efdˆ„Z�d†eŽd=eŠfd‰„Z�d†e‘dŠe’fd‹„Z“d€e	fdŒ„Z”d¨d†ed€e	fd�„Z•d†e‘dŽefd�„Z–d†eŽd�efd‘„Z—	 d¨d†e‘d’ed“e3e   fd”„Z˜d†e‘d•efd–„Z™d€e(fd—„Zšd¨d†ed€e(fd˜„Z›d†eŽd™efdš„Zœd†e‘d›e+fdœ„Z�d†e‘d�e-fdž„Zžd†eŸdŸe1fd „Z d†e‘d¡e/d=dfd¢„Z¡d£ed=e3e¢e£ef      fd¤„Z¤d¥„ Z¥d?ed=eŠfd¦„Z¦d?ed=eŠfd§„Z§y)«rb   zFThe manifest for the full graph, after parsing and during compilation.r™  r¾   r—   ro  rx   Ú	exposuresr¥   rÙ   ÚgroupsÚ	selectorsÚfilesrp  Ú
flat_graphÚstate_checkÚsource_patchesrô   Úenv_varsró   Ú
unit_testsrä   ÚfixturesNc                  ó   — y rU   r„   ©Úxs    r\   ú<lambda>zManifest.<lambda>®  ó   � r^   )Ú	serializeÚdeserialize)Údefaultrp  Ú_doc_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>±  r²  r^   Ú_source_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>´  r²  r^   Ú_ref_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>·  r²  r^   Ú_metric_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>º  r²  r^   Ú_saved_query_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>½  r²  r^   Ú!_semantic_model_by_measure_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>À  r²  r^   Ú_disabled_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Ã  r²  r^   Ú_analysis_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Æ  r²  r^   Ú_singular_test_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>É  r²  r^   Ú_function_lookupc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Í  r²  r^   )rš  rp  Ú_parsing_infoc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Ñ  r²  r^   Ú_lockc                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Õ  r²  r^   rq  c                  ó   — y rU   r„   r¯  s    r\   r±  zManifest.<lambda>Ù  r²  r^   rr  Úcontextc                 ó   — i | _         | S rU   )rª  )rg   rÏ  s     r\   Ú__pre_serialize__zManifest.__pre_serialize__Ü  s   € ð !ˆÔØˆr^   c                 ó@   — t        «       j                  «       |_        |S rU   )rI   r   rÌ  )rJ  Úobjs     r\   Ú__post_deserialize__zManifest.__post_deserialize__â  s   € ä"Ó$×)Ñ)Ó+ˆŒ	Øˆ
r^   c                 óD  — | j                   j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j
                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}| j                  j                  «       D ��ci c]  \  }}||j                  d¬«      “Œ c}}dœ| _
        yc c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w )zñThis attribute is used in context.common by each node, so we want to
        only build it once and avoid any concurrency issues around it.
        Make sure you don't call this until you're done with building your
        manifest!
        Fr)  )r¤  r¥   r¥  rÙ   r¾   r—   ró   rä   N)r¤  r  r,  r¥   r¥  rÙ   r¾   r—   ró   rä   r¨  )rg   r  rÁ   s      r\   Úbuild_flat_graphzManifest.build_flat_graphç  s³  € ð EIÇNÁN×DXÑDXÓDZ×[¹D¸A¸q˜!˜QŸY™Y°˜YÓ7Ñ7Ó[ØDHÇNÁN×DXÑDXÓDZ×[¹D¸A¸q˜!˜QŸY™Y°˜YÓ7Ñ7Ó[ØAEÇÁ×ARÑARÓAT×U¹¸¸A�q˜!Ÿ)™)¨e˜)Ó4Ñ4ÓUØBFÇ,Á,×BTÑBTÓBV×W¹$¸!¸Q˜˜1Ÿ9™9¨u˜9Ó5Ñ5ÓWØ@DÇ
Á
×@PÑ@PÓ@R×S¹¸¸1�a˜Ÿ™¨U˜Ó3Ñ3ÓSØBFÇ,Á,×BTÑBTÓBV×W¹$¸!¸Q˜˜1Ÿ9™9¨u˜9Ó5Ñ5ÓWà:>×:NÑ:N×:TÑ:TÓ:V÷ Ù26°!°Q��1—9‘9 u�9Ó-Ñ-ó ð ;?×:LÑ:L×:RÑ:RÓ:T÷Ù26°!°Q��1—9‘9 u�9Ó-Ñ-óñ
ˆ�ùÛ[ùÛ[ùÛUùÛWùÛSùÛWùó ùós/   žG2ÁG8ÂG>
ÃHÄH
ÅHÆHÇ	Hc                 ót   — i }| j                   j                  «       D ]  }|D ]  }|||j                  <   Œ Œ |S rU   )rô   rX   Úfile_id)rg   Údisabled_by_file_idÚ	node_listr­   s       r\   Úbuild_disabled_by_file_idz"Manifest.build_disabled_by_file_idü  sJ   € Ø ÐØŸ™×-Ñ-Ó/ò 	9ˆIØ!ò 9�Ø48Ð# D§L¡LÒ1ñ9ð	9ð #Ð"r^   r‡  rS   c                 ó&   — ddl m}  ||«      dgz   S )Nr   )Úget_adapter_type_namesrµ  )Údbt.adapters.factoryrÝ  )rg   r‡  rÝ  s      r\   Ú_get_parent_adapter_typesz"Manifest._get_parent_adapter_types  s   € õ 	@ñ & lÓ3°y°kÑAÐAr^   Úproject_nameÚmaterialization_namerF  c                 ó�   ‡— t         j                  j                  ||d¬«      }t        ˆfd„| j	                  ||«      D «       «      S )NF)rá  r‡  Úwith_prefixc              3   óJ   •K  — | ]  }t         j                  |‰«      –— Œ y ­wrU   )rE  rK  )Ú.0ÚmrF  s     €r\   ú	<genexpr>z;Manifest._materialization_candidates_for.<locals>.<genexpr>  s&   øè ø€ ò 
àô %×/Ñ/°°;×?ñ
ùs   ƒ #)r{   ÚutilsÚget_materialization_macro_namerT  rw  )rg   rà  rá  r‡  rF  Ú	full_names       ` r\   Ú_materialization_candidates_forz(Manifest._materialization_candidates_for  sS   ø€ ô ×$Ñ$×CÑCØ!5Ø%Øð Dó 
ˆ	ô
 ó 
à×.Ñ.¨y¸,ÓGô
ó 
ð 	
r^   c           
      óV  ‡ ‡‡— t        t        j                  ˆˆˆ fd„t        ‰ j	                  |«      «      D «       «      «      }|D �cg c]"  }|j
                  t        j                  k(  sŒ!|‘Œ$ }}|j                  «       }|�’|j
                  t        j                  k(  ru|rst        «       j                  du r-t        j                  d|j                  j                  ‰¬«       n0|j                  t        j                  t        j                   g¬«      }|r|j                  S d S c c}w )Nc              3   óN   •K  — | ]  \  }}‰j                  ‰‰||¬ «      –— Œ y­w))rà  rá  r‡  rF  N)rë  )rå  rF  Úatyperá  rà  rg   s      €€€r\   rç  z>Manifest.find_materialization_macro_by_name.<locals>.<genexpr>#  s;   øè ø€ ò  ñ '�K ð ×4Ñ4Ø!-Ø)=Ø!&Ø +ð	 5÷ ñ ùs   ƒ"%Fz package-materialization-override)ru   rá  )rU  )rT  r   rþ   Ú	enumeraterß  r8  r0  r3  rZ  r4  rH   Ú?require_explicit_package_overrides_for_builtin_materializationsr   Úwarnr$  ru   r5  )rg   rà  rá  r‡  rx  rG  Úcore_candidatesÚmaterialization_candidates   ```     r\   Ú"find_materialization_macro_by_namez+Manifest.find_materialization_macro_by_name  s  ú€ ô %2Ü×Ñõ  ô +4°D×4RÑ4RÐS_Ó4`Ó*aô ó ó
%
ˆ
ð (2ö
Ø#°Y×5GÑ5GÌ8Ï=É=Ó5XŠIð
ˆð 
ð %/×$=Ñ$=Ó$?Ð!ð &Ð1Ø)×2Ñ2´h×6GÑ6GÒGÙô “×[Ñ[Øñô ×!Ñ!Ø6Ø!:×!@Ñ!@×!MÑ!MØ)=öð -7×,EÑ,EÜ&.§m¡m´X·]±]Ð%Cð -Fó -Ð)ñ 3LÐ(×.Ñ.ÐUÐQUÐUùò5
s   Á	"D&Á,D&c                 ó`  — i }t        | j                  j                  «       | j                  j                  «       | j                  j                  «       | j
                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       «      }|D ]T  }|j                  j                  «       }||vrt        «       ||<   ||   j                  t        |j                  «      «       ŒV |S rU   )r   r¤  rX   r¥   r¾   r—   rÙ   ró   rä   r¬  rÄ   Ú	pluralizerÎ   rñ   ÚtupleÚfqn)rg   Úresource_fqnsÚall_resourcesÚresourceÚresource_type_plurals        r\   Úget_resource_fqnszManifest.get_resource_fqnsI  s÷   € Ø9;ˆÜØ�N‰N×!Ñ!Ó#Ø�N‰N×!Ñ!Ó#Ø�J‰J×ÑÓØ�L‰L×ÑÓ!Ø�L‰L×ÑÓ!Ø× Ñ ×'Ñ'Ó)Ø×Ñ×%Ñ%Ó'Ø�O‰O×"Ñ"Ó$ó	
ˆð &ò 	IˆHØ#+×#9Ñ#9×#CÑ#CÓ#EÐ Ø#¨=Ñ8Ü69³e�Ð2Ñ3ØÐ.Ñ/×3Ñ3´E¸(¿,¹,Ó4GÕHð		Ið
 Ðr^   c                 óþ   — t        t        | j                  j                  «       | j                  j                  «       «      D �ch c]*  }|r|j
                  |v r|j                  |j                  f’Œ, c}«      S c c}w rU   )Ú	frozensetr   r¾   rX   r—   rÄ   ÚdatabaseÚschema)rg   r  r­   s      r\   Úget_used_schemaszManifest.get_used_schemas\  sj   € Üô " $§*¡*×"3Ñ"3Ó"5°t·|±|×7JÑ7JÓ7LÓMöàÙ%¨×);Ñ);¸~Ñ)Mð —‘ §¡Ò,òó
ð 	
ùòs   Á/A:c                 óš   — t        d„ t        | j                  j                  «       | j                  j                  «       «      D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wrU   )r   )rå  r°  s     r\   rç  z.Manifest.get_used_databases.<locals>.<genexpr>f  s   è ø€ Ò_¨˜Ÿ�Ñ_ùs   ‚)rÿ  r   r¾   rX   r—   re  s    r\   Úget_used_databaseszManifest.get_used_databasese  s4   € ÜÑ_¬U°4·:±:×3DÑ3DÓ3FÈÏÉ×H[ÑH[ÓH]Ó-^Ô_Ó_Ð_r^   c                 óF  — t        di d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j
                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d	| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d
| j                  “d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“dt        | j                  «      “d| j                   j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j"                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“d| j$                  j                  «       D ��ci c]  \  }}|t        |«      “Œ c}}“Ž}|j'                  «        |S c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w c c}}w )Nr¾   r—   ro  rx   r¤  r¥   rÙ   r¥  r¦  rp  rô   r§  r©  ró   r¬  rä   r„   )rb   r¾   r  r.  r—   ro  rx   r¤  r¥   rÙ   r¥  r¦  rp  rô   r§  r©  ró   r¬  rä   rÖ  )rg   r  rÁ   Úcopys       r\   ÚdeepcopyzManifest.deepcopyh  sñ  € Üò 
Ø/3¯z©z×/?Ñ/?Ó/A×B¡t q¨!�1”i “l‘?ÔBð
à15·±×1CÑ1CÓ1E×F©¨¨A�Qœ	 !›‘_ÔFð
ð 15·±×0AÑ0AÓ0C×D©¨¨1�A”y “|‘OÔDð
ð /3¯i©i¯o©oÓ.?×@¡d a¨�!”Y˜q“\‘/Ô@ð	
ð
 48·>±>×3GÑ3GÓ3I×J©4¨1¨a�qœ) A›,‘ÔJð
ð 48·>±>×3GÑ3GÓ3I×J©4¨1¨a�qœ) A›,‘ÔJð
ð 26·±×1CÑ1CÓ1E×F©¨¨A�Qœ	 !›‘_ÔFð
ð 15·±×0AÑ0AÓ0C×D©¨¨1�A”y “|‘OÔDð
ð 48·>±>×3GÑ3GÓ3I×J©4¨1¨a�qœ) A›,‘ÔJð
ð —]’]ð
ð 37·-±-×2EÑ2EÓ2G×H©$¨!¨Q�aœ 1›‘oÔHð
ð 04¯z©z×/?Ñ/?Ó/A×B¡t q¨!�1”i “l‘?ÔBð
ô " $×"2Ñ"2Ô3ð
ð :>×9MÑ9M×9SÑ9SÓ9U×V±°°A˜Q¤	¨!£™_ÔVð
ð 59·O±O×4IÑ4IÓ4K×L©D¨A¨q˜œ9 Q›<™ÔLð
ð  8<×7IÑ7I×7OÑ7OÓ7Q×R©t¨q°!˜1œi¨›l™?ÔRð!
ˆð$ 	×ÑÔØˆùó% CùÛFùÛDùÛ@ùÛJùÛJùÛFùÛDùÛJùãHùÛBùãVùÛLùÛRsS   ¦MÁMÂMÃM!ÄM'Ä>M-Å6M3Æ.M9Ç&M?È+NÉ#NÊ1NË)NÌ!Nc                 óò  — t        t        | j                  j                  «       | j                  j                  «       | j
                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       «      «      }t        |«      \  }}|| _        || _        y rU   )rÍ   r   r¾   rX   r—   r¤  r¥   rÙ   ró   rä   r¬  r"  Ú	child_mapÚ
parent_map)rg   Úedge_membersr!  r  s       r\   Úbuild_parent_and_child_mapsz$Manifest.build_parent_and_child_maps~  s·   € ÜÜØ—
‘
×!Ñ!Ó#Ø—‘×#Ñ#Ó%Ø—‘×%Ñ%Ó'Ø—‘×%Ñ%Ó'Ø—‘×#Ñ#Ó%Ø×$Ñ$×+Ñ+Ó-Ø×"Ñ"×)Ñ)Ó+Ø—‘×&Ñ&Ó(ó	ó
ˆô )9¸Ó(FÑ%ˆ�~Ø&ˆŒØ(ˆ�r^   c                 ó¦   — t        t        | j                  j                  «       | j                  j                  «       «      «      }t        |«      }|S rU   )rÍ   r   r¾   rX   ro  r'  )rg   r  r!  s      r\   Úbuild_macro_child_mapzManifest.build_macro_child_map�  sF   € ÜÜØ—
‘
×!Ñ!Ó#Ø—‘×"Ñ"Ó$óó
ˆô *¨,Ó7ˆØÐr^   c           	      ó  — t        t        | j                  j                  «       | j                  j                  «       | j
                  j                  «       | j                  j                  «       «      «      }| j                  j                  «       D �ci c]  }|j                  g “Œ }}|D ]F  }|j                  €Œ|j                  |v sŒ||j                     j                  |j                  «       ŒH || _        y c c}w rU   )rÍ   r   r¾   rX   rä   ró   rÙ   r¥  rt   Úgroupr   rp   Ú	group_map)rg   Úgroupable_nodesr  r  r­   s        r\   Úbuild_group_mapzManifest.build_group_map™  sÕ   € ÜÜØ—
‘
×!Ñ!Ó#Ø×"Ñ"×)Ñ)Ó+Ø×$Ñ$×+Ñ+Ó-Ø—‘×#Ñ#Ó%ó	ó
ˆð 26·±×1CÑ1CÓ1EÖF¨�U—Z‘Z ‘^ÐFˆ	ÐFØ#ò 		AˆDØ�z‰zÑ%ð —:‘: Ò*Ø˜dŸj™jÑ)×0Ñ0°·±Õ@ð		Að #ˆ�ùò Gs   ÂC=c                 óÀ   — t         j                  rt         j                  j                  nd | j                  _        t        «       j                  | j                  _        y rU   )r   Úactive_userÚidrp  Úuser_idrH   ÚSEND_ANONYMOUS_USAGE_STATSÚsend_anonymous_usage_statsre  s    r\   Úfill_tracking_metadatazManifest.fill_tracking_metadata¯  s9   € Ü;C×;OÒ;O¤× 4Ñ 4× 7Ò 7ÐUYˆ�‰ÔÜ3<³;×3YÑ3Yˆ�‰Õ0r^   Úwritable_manifestc                 ó  — t        | j                  |j                  «      | j                  |j                  «      | j                  |j
                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      | j                  |j                  «      |j                  j!                  «       D ��ci c]  \  }}||“Œ
 c}}|j"                  ¬«      }|S c c}}w )N)r¾   rô   r¬  r—   ro  rx   r¤  r¥   rÙ   r¥  ró   rä   r¦  rp  )rb   Ú_map_resources_to_map_nodesr¾   Ú%_map_list_resources_to_map_list_nodesrô   r¬  r—   ro  rx   r¤  r¥   rÙ   r¥  ró   rä   r¦  r  rp  )rJ  r  Úselector_idÚselectorra   s        r\   Úfrom_writable_manifestzManifest.from_writable_manifest³  sO  € äØ×1Ñ1Ð2C×2IÑ2IÓJØ×>Ñ>Ð?P×?YÑ?YÓZØ×6Ñ6Ð7H×7SÑ7SÓTØ×3Ñ3Ð4E×4MÑ4MÓNØ×2Ñ2Ð3D×3KÑ3KÓLØ×0Ñ0Ð1B×1GÑ1GÓHØ×5Ñ5Ð6G×6QÑ6QÓRØ×5Ñ5Ð6G×6QÑ6QÓRØ×3Ñ3Ð4E×4MÑ4MÓNØ×2Ñ2Ð3D×3KÑ3KÓLØ×;Ñ;Ð<M×<]Ñ<]Ó^Ø×9Ñ9Ð:K×:YÑ:YÓZð .?×-HÑ-H×-NÑ-NÓ-P÷á)�K ð ˜XÑ%óð '×/Ñ/ô#
ˆð( ˆùós   ÅE>"Ú	nodes_mapc                 ór   — |j                  «       D ��ci c]  \  }}||j                  «       “Œ c}}S c c}}w rU   ©r  Úto_resource)rJ  r#  Únode_idr­   s       r\   Ú_map_nodes_to_map_resourcesz$Manifest._map_nodes_to_map_resourcesË  s/   € ØAJÇÁÓAR×S±°¸�˜×)Ñ)Ó+Ñ+ÓSÐSùÓSs   ”3c                 óž   — |j                  «       D ���ci c]$  \  }}||D �cg c]  }|j                  «       ‘Œ c}“Œ& c}}}S c c}w c c}}}w rU   r%  )rJ  r#  r'  rÚ  r­   s        r\   Ú%_map_list_nodes_to_map_list_resourcesz.Manifest._map_list_nodes_to_map_list_resourcesÎ  sP   € ð
 '0§o¡oÓ&7÷
ð 
á"�˜ð °YÖ?¨T�d×&Ñ&Õ(Ò?Ñ?ô
ð 	
ùÚ?ùô
s   •A¢A¹AÁAÚresources_mapc           	      ó”   — |j                  «       D ��ci c]'  \  }}|t        t        |«         j                  |«      “Œ) c}}S c c}}w rU   ©r  r+   ÚtypeÚfrom_resource)rJ  r+  r'  rû  s       r\   r  z$Manifest._map_resources_to_map_nodesÖ  sL   € ð &3×%8Ñ%8Ó%:÷
á!�˜ð Ô1´$°x³.ÑA×OÑOÐPXÓYÑYó
ð 	
ùó 
s   ”,Ac                 óÈ   — |€i S |j                  «       D ���ci c]5  \  }}||D �cg c]#  }t        t        |«         j                  |«      ‘Œ% c}“Œ7 c}}}S c c}w c c}}}w rU   r-  )rJ  r+  r'  Úresource_listrû  s        r\   r  z.Manifest._map_list_resources_to_map_list_nodesÝ  sy   € ð Ð ØˆIð +8×*=Ñ*=Ó*?÷
ð 
ñ
 '�˜ð	 à -öàô -¬T°(«^Ñ<×JÑJÈ8ÕTòñ ô
ð 	
ùòùô
s   ™A¦(AÁAÁAc                 ó–  — | j                  «        | j                  «        | j                  «        t        di d| j	                  | j
                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d| j	                  | j                  «      “d	| j                  “d
| j                  “d| j                  | j                   «      “d| j"                  “d| j$                  “d| j&                  “d| j	                  | j(                  «      “d| j	                  | j*                  «      “d| j	                  | j,                  «      “ŽS )Nr¾   r—   ro  rx   r¤  r¥   rÙ   r¥  r¦  rp  rô   r
  r  r  ró   r¬  rä   r„   )r  r  r  r$   r(  r¾   r—   ro  rx   r¤  r¥   rÙ   r¥  r¦  rp  r*  rô   r
  r  r  ró   r¬  rä   re  s    r\   r  zManifest.writable_manifestì  s¥  € Ø×(Ñ(Ô*Ø×ÑÔØ×#Ñ#Ô%äò 
Ø×2Ñ2°4·:±:Ô>ð
à×4Ñ4°T·\±\ÔBð
ð ×3Ñ3°D·K±KÔ@ð
ð ×1Ñ1°$·)±)Ô<ð	
ð
 ×6Ñ6°t·~±~ÔFð
ð ×6Ñ6°t·~±~ÔFð
ð ×4Ñ4°T·\±\ÔBð
ð ×3Ñ3°D·K±KÔ@ð
ð —n’nð
ð —]’]ð
ð ×?Ñ?ÀÇÁÔNð
ð —n’nð
ð —’ð
ð —n’nð
ð !×<Ñ<¸T×=QÑ=QÔRð
ð  ×7Ñ7¸¿¹ÔHð!
ð" ×:Ñ:¸4×;MÑ;MÔNð#
ð 	
r^   c                 óš   — | j                  «       }|j                  |«       t        t        |j                  j
                  |¬«      «       y )N)Úartifact_typeÚartifact_path)r  ÚwriterP   rC   Ú	__class__r€   )rg   ÚpathÚwritables      r\   r6  zManifest.write  s8   € Ø×)Ñ)Ó+ˆØ�‰�tÔÜ”?°×1CÑ1C×1LÑ1LÐ\`ÔaÕbr^   rp   c                 ó.  — || j                   v r| j                   |   S || j                  v r| j                  |   S || j                  v r| j                  |   S || j                  v r| j                  |   S || j                  v r| j                  |   S || j
                  v r| j
                  |   S || j                  v r| j                  |   S || j                  v r| j                  |   S t        j                  j                  dj                  |«      «      ‚)Nz&Expected node {} not found in manifest)r¾   r—   r¤  r¥   rÙ   ró   r¬  rä   r{   r|   r}   Úformat)rg   rp   s     r\   ÚexpectzManifest.expect  s  € Ø˜Ÿ
™
Ñ"Ø—:‘:˜iÑ(Ð(Ø˜$Ÿ,™,Ñ&Ø—<‘< 	Ñ*Ð*Ø˜$Ÿ.™.Ñ(Ø—>‘> )Ñ,Ð,Ø˜$Ÿ.™.Ñ(Ø—>‘> )Ñ,Ð,Ø˜$Ÿ,™,Ñ&Ø—<‘< 	Ñ*Ð*Ø˜$×.Ñ.Ñ.Ø×'Ñ'¨	Ñ2Ð2Ø˜$Ÿ/™/Ñ)Ø—?‘? 9Ñ-Ð-Ø˜$×,Ñ,Ñ,Ø×%Ñ% iÑ0Ð0ô ×'Ñ'×8Ñ8Ø8×?Ñ?À	ÓJóð r^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )r¶  r`   re  s    r\   Ú
doc_lookupzManifest.doc_lookup#  s&   € à×ÑÐ#Ü(¨›ˆDÔØ×ÑÐr^   c                 ó$   — t        | «      | _        y rU   )r`   r¶  re  s    r\   Úrebuild_doc_lookupzManifest.rebuild_doc_lookup)  s   € Ü$ T›?ˆÕr^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )r¸  r†   re  s    r\   Úsource_lookupzManifest.source_lookup,  ó'   € à×ÑÐ&Ü".¨tÓ"4ˆDÔØ×"Ñ"Ð"r^   c                 ó$   — t        | «      | _        y rU   )r†   r¸  re  s    r\   Úrebuild_source_lookupzManifest.rebuild_source_lookup2  s   € Ü*¨4Ó0ˆÕr^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )rº  r¨   re  s    r\   Ú
ref_lookupzManifest.ref_lookup5  s'   € à×ÑÐ#Ü,¨TÓ2ˆDÔØ×ÑÐr^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )r¼  rÑ   re  s    r\   Úmetric_lookupzManifest.metric_lookup;  rC  r^   c                 óR   — | j                   €t        | «      | _         | j                   S )z?Retuns a SavedQueryLookup, instantiating it first if necessary.)r¾  rÜ   re  s    r\   Úsaved_query_lookupzManifest.saved_query_lookupA  s)   € ð ×#Ñ#Ð+Ü'7¸Ó'=ˆDÔ$Ø×'Ñ'Ð'r^   c                 óR   — | j                   €t        | «      | _         | j                   S )zYGets (and creates if necessary) the lookup utility for getting SemanticModels by measures)rÀ  rè   re  s    r\   Ú semantic_model_by_measure_lookupz)Manifest.semantic_model_by_measure_lookupH  s*   € ð ×1Ñ1Ð9Ü5QÐRVÓ5WˆDÔ2Ø×5Ñ5Ð5r^   c                 ó$   — t        | «      | _        y rU   )r¨   rº  re  s    r\   Úrebuild_ref_lookupzManifest.rebuild_ref_lookupO  s   € Ü(¨Ó.ˆÕr^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )rÂ  rû   re  s    r\   Údisabled_lookupzManifest.disabled_lookupR  ó'   € à× Ñ Ð(Ü$2°4Ó$8ˆDÔ!Ø×$Ñ$Ð$r^   c                 ó$   — t        | «      | _        y rU   )rû   rÂ  re  s    r\   Úrebuild_disabled_lookupz Manifest.rebuild_disabled_lookupX  s   € Ü .¨tÓ 4ˆÕr^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )rÄ  r  re  s    r\   Úanalysis_lookupzManifest.analysis_lookup[  rR  r^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )rÆ  r  re  s    r\   Úsingular_test_lookupzManifest.singular_test_lookupa  s'   € à×%Ñ%Ð-Ü);¸DÓ)AˆDÔ&Ø×)Ñ)Ð)r^   c                 óR   — | j                   €t        | «      | _         | j                   S rU   )rÈ  rœ   re  s    r\   Úfunction_lookupzManifest.function_lookupg  rR  r^   c                 óŠ   — | j                   j                  «       D �cg c]  }|j                  sŒ|j                  ‘Œ c}S c c}w rU   )r¾   rX   Úis_external_noderp   rÆ   s     r\   Úexternal_node_unique_idsz!Manifest.external_node_unique_idsm  s/   € à+/¯:©:×+<Ñ+<Ó+>ÖX 4À$×BWÓBW�—“ÒXÐXùÒXs
   �A ¯A r´   Útarget_model_nameÚtarget_model_packageÚtarget_model_versionr  r  c                 ó.  — d }d }t        |||«      }	|	D ]o  }
| j                  j                  ||
|| |«      }|�&t        |d«      r|j                  j
                  r|c S |�ŒM| j                  j                  ||
|t        ¬«      }Œq |rt        |d   «      S y )NÚconfig)r¬   r  r   )	r  rG  rq   r˜   rb  ÚenabledrQ  rJ   ri  )rg   r´   r^  r_  r`  r  r  r­   rô   rx  Úpkgs              r\   Úresolve_refzManifest.resolve_refr  s´   € ð (,ˆØ15ˆä(¨¸,ÐH\Ó]ˆ
Øò 	ˆCØ—?‘?×'Ñ'Ø! 3Ð(<¸dÀKóˆDð Ð¤G¨D°(Ô$;ÀÇÁ×@SÒ@SØ’ð ÑØ×/Ñ/×4Ñ4Ø%ØØ0Ü#5ð	 5ó ‘ð	ñ" Ü˜H Q™KÓ(Ð(Ør^   Útarget_source_nameÚtarget_table_namec                 ó  — |› d|› �}t        ||«      }d }d }|D ]_  }	| j                  j                  ||	| «      }|�|j                  j                  r|c S |�Œ?| j
                  j                  |› d|› �|	«      }Œa |rt        |d   «      S y )Nú.r   )r  rB  rq   rb  rc  rQ  ri  )
rg   rf  rg  r  r  rŠ   rx  r�   rô   rd  s
             r\   Úresolve_sourcezManifest.resolve_source—  s³   € ð ,Ð,¨AÐ.?Ð-@ÐAˆÜ(¨¸,ÓGˆ
à-1ˆØ59ˆàò 	ˆCØ×'Ñ'×,Ñ,¨[¸#¸tÓDˆFØÐ! f§m¡m×&;Ò&;Ø’àÑØ×/Ñ/×4Ñ4Ø)Ð*¨!Ð,=Ð+>Ð?Àó‘ð	ñ Ü˜H Q™KÓ(Ð(Ør^   Útarget_function_nameÚtarget_function_packagec                 ó   — t        |||«      }d }|D ]Z  }| j                  j                  ||| «      }|�|j                  j                  r|c S |�Œ?| j
                  j                  ||«      }Œ\ |rt        |d   «      S y ©Nr   )r  rZ  rq   rb  rc  rQ  ri  )	rg   rk  rl  r  r  Úpackage_candidatesrô   rR   r    s	            r\   Úresolve_functionzManifest.resolve_function²  sš   € ô 1Ø˜\Ð+Bó
Ðð 26ˆØ)ò 	TˆGØ×+Ñ+×0Ñ0Ð1EÀwÐPTÓUˆHØÐ#¨¯©×(?Ò(?Ø’ð ÑØ×/Ñ/×4Ñ4Ð5IÈ7ÓS‘ð	Tñ Ü˜H Q™KÓ(Ð(Ør^   Útarget_metric_nameÚtarget_metric_packagec                 ó  — d }d }t        |||«      }|D ][  }| j                  j                  ||| «      }|�|j                  j                  r|c S |�Œ?| j
                  j                  |› |«      }Œ] |rt        |d   «      S y rn  )r  rI  rq   rb  rc  rQ  ri  )	rg   rq  rr  r  r  rÕ   rô   rx  rd  s	            r\   Úresolve_metriczManifest.resolve_metricÉ  s›   € ð $(ˆØ+/ˆä(¨¸,ÐH]Ó^ˆ
Øò 	SˆCØ×'Ñ'×,Ñ,Ð-?ÀÀdÓKˆFàÐ! f§m¡m×&;Ò&;Ø’ð ÑØ×/Ñ/×4Ñ4Ð8JÐ7KÈcÓR‘ð	Sñ Ü˜H Q™KÓ(Ð(Ør^   Útarget_saved_query_nameÚtarget_saved_query_packagec                 ó  — d}t        |||«      }|D ][  }| j                  j                  ||| «      }|�|j                  j                  r|c S |�Œ?| j
                  j                  |› |«      }Œ] |rt        |d   «      S y)aP  Tries to find the SavedQuery by name within the available project and packages.

        Will return the first enabled SavedQuery matching the name found while iterating over
        the scoped packages. If no enabled SavedQuery node match is found, returns the last
        disabled SavedQuery node. Otherwise it returns None.
        Nr   )r  rK  rq   rb  rc  rQ  ri  )	rg   ru  rv  r  r  rô   rx  rd  rà   s	            r\   Úresolve_saved_queryzManifest.resolve_saved_queryâ  sœ   € ð 04ˆÜ(¨¸,ÐHbÓcˆ
Øò 	XˆCØ×1Ñ1×6Ñ6Ð7NÐPSÐUYÓZˆKàÐ&¨;×+=Ñ+=×+EÒ+EØ"Ò"ð ÑØ×/Ñ/×4Ñ4Ð8OÐ7PÐSVÓW‘ð	Xñ Ü˜H Q™KÓ(Ð(àr^   Útarget_measure_namer  c                 ór   — t        |||«      }|D ]%  }| j                  j                  ||| «      }|€Œ#|c S  y)z9Tries to find the SemanticModel that a measure belongs toN)r  rM  rq   )rg   ry  r  r  r  rx  rd  rí   s           r\   Ú"resolve_semantic_model_for_measurez+Manifest.resolve_semantic_model_for_measureÿ  sQ   € ô )¨¸,ÈÓWˆ
àò 	&ˆCØ!×BÑB×GÑGØ# S¨$óˆNð Ñ)Ø%Ò%ð	&ð r^   rt   rR   c                 ór   — t        |||«      }|D ]%  }| j                  j                  ||| «      }|€Œ#|c S  y)z±Resolve the given documentation. This follows the same algorithm as
        resolve_ref except the is_enabled checks are unnecessary as docs are
        always enabled.
        N)r  r>  rq   )rg   rt   rR   r  r  rx  rd  Úresults           r\   Úresolve_doczManifest.resolve_doc  sI   € ô )¨¸,ÈÓPˆ
àò 	ˆCØ—_‘_×)Ñ)¨$°°TÓ:ˆFØÑ!Ø’ð	ð r^   r­   Útarget_modelÚdependenciesc                 óð  — |xs i }t        |t        «      sy|j                  t        j                  k(  xr< |j
                  t        j                  k7  xr |j
                  t        j                  k7  }|j                  |j                  «      }|r|j                  nd}|xrV t        |d«       xsG |j                   xs8 |j                  |j                  k7  xs |j                  |j                  k7  xr |S )NFr  )r»   r6   ÚaccessrL   ÚPrivaterÄ   rM   ÚSqlOperationÚRPCCallrö   ru   Úrestrict_accessr˜   r  )rg   r­   r  r€  Úis_private_refÚtarget_dependencyÚrestrict_package_accesss          r\   Úis_invalid_private_refzManifest.is_invalid_private_ref'  sü   € ð $Ò) rˆÜ˜,¬	Ô2Øð ×Ñ¤:×#5Ñ#5Ñ5ò 7à×"Ñ"¤h×&;Ñ&;Ñ;ò7ð ×"Ñ"¤h×&6Ñ&6Ñ6ð	 	ð )×,Ñ,¨\×-FÑ-FÓGÐÙGXÐ"3×"CÒ"CÐ^cÐð ò 
Ü˜˜gÓ&Ð&ò \Ø—:‘:ˆ~ò\ð �z‰z˜\×/Ñ/Ñ/ò\ð
 ×!Ñ! \×%>Ñ%>Ñ>ÒZÐCZð	
r^   c                 ó~  — |xs i }t        |t        «      sy|j                  t        j                  k(  xr< |j
                  t        j                  k7  xr |j
                  t        j                  k7  }|j                  |j                  «      }|r|j                  nd}|xr |j                  |j                  k7  xr |S ©NF)r»   r6   r‚  rL   Ú	ProtectedrÄ   rM   r„  r…  rö   ru   r†  )rg   r­   r  r€  Úis_protected_refrˆ  r‰  s          r\   Úis_invalid_protected_refz!Manifest.is_invalid_protected_refA  s¼   € ð $Ò) rˆÜ˜,¬	Ô2Øð ×Ñ¤:×#7Ñ#7Ñ7ò 7à×"Ñ"¤h×&;Ñ&;Ñ;ò7ð ×"Ñ"¤h×&6Ñ&6Ñ6ð	 	ð )×,Ñ,¨\×-FÑ-FÓGÐÙGXÐ"3×"CÒ"CÐ^cÐàò 
Ø×Ñ ×!:Ñ!:Ñ:ÒVÐ?Vð	
r^   c                 ó–  — t        t        «      }|j                  j                  «       D �]  \  }}| j                  j	                  |«      }|sŒ%|j
                  |v sŒ4|j                  rŒAt        |j                  t        «      sJ ‚t        |j                  |j                  |j                  |j                  |j
                  |j                  |j                   t        |t"        «      s|j$                  nd|j&                  |j(                  |j                  ¬«      }t+        ||¬«      | j                  |<   �Œ | j-                  «        y)zÒUpdate this manifest by adding the 'defer_relation' attribute to all nodes
        with a counterpart in the stateful manifest used for deferral.

        Only non-ephemeral refable nodes are examined.
        N)r   r  ÚaliasÚrelation_namerÄ   rt   ÚdescriptionÚcompiled_codeÚmetaÚtagsrb  )Údefer_relation)rÎ   rJ   r¾   r  rö   rÄ   Úis_ephemeralr»   rb  r   r   r   r  r‘  r’  rt   r“  r8   r”  r•  r–  r   rÖ  )rg   r9  Úrefablesrp   r­   Úcurrentr—  s          r\   Úmerge_from_artifactzManifest.merge_from_artifactV  sÿ   € ô Ô)Ó*ˆØ$Ÿ{™{×0Ñ0Ó2ó 	X‰OˆI�tØ—j‘j—n‘n YÓ/ˆGÚ˜4×-Ñ-°Ò9À$×BSÓBSÜ! $§+¡+¬zÔ:Ð:Ð:Ü!.Ø!Ÿ]™]ØŸ;™;ØŸ*™*Ø"&×"4Ñ"4Ø"&×"4Ñ"4ØŸ™Ø $× 0Ñ 0Ü=GÈÌhÔ=W 4×#5Ò#5Ð]aØŸ™ØŸ™ØŸ;™;ô"�ô )0°ÈÔ(W�—
‘
˜9Ó%ð#	Xð( 	×ÑÕr^   Úsource_filer$  c                 óî  — |j                   | j                  v rt        || j                  ¬«      ‚|| j                  |j                   <   | j                  € | j	                  | j                  «      | _        |j
                  | j                  vrg | j                  |j
                  <   | j                  |j
                     j                  |«       | j                  € | j                  | j                  «      | _        |j                  | j                  vri | j                  |j                  <   || j                  |j                     |j
                  <   |j                  j                  |j                   «       y )N)r$  Úmacro_mapping)
rp   ro  r   rq  r‹  rt   r   rr  rŽ  ru   )rg   rœ  r$  s      r\   Ú	add_macrozManifest.add_macrot  s  € Ø�?‰?˜dŸk™kÑ)ä.°UÈ$Ï+É+ÔVÐVà',ˆ�‰�E—O‘OÑ$à×ÑÐ'Ø#'×#=Ñ#=¸d¿k¹kÓ#JˆDÔ à�:‰:˜T×1Ñ1Ñ1Ø/1ˆD× Ñ  §¡Ñ,à×Ñ˜UŸZ™ZÑ(×/Ñ/°Ô6à×"Ñ"Ð*Ø&*×&CÑ&CÀDÇKÁKÓ&PˆDÔ#à×Ñ T×%<Ñ%<Ñ<Ø:<ˆD×#Ñ# E×$6Ñ$6Ñ7àBGˆ×Ñ × 2Ñ 2Ñ3°E·J±JÑ?à×Ñ×!Ñ! %§/¡/Õ2r^   c                 óŽ   — |j                   }|€y|| j                  vry| j                  |   j                  }||j                  k(  S rŒ  )rØ  r§  Úchecksum)rg   rœ  rZ   Úmy_checksums       r\   Úhas_filezManifest.has_file�  sH   € Ø×!Ñ!ˆØˆ;ØØ�d—j‘jÑ ØØ—j‘j ‘o×.Ñ.ˆØ˜k×2Ñ2Ñ2Ð2r^   r�   c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )Ú_check_duplicatesr—   rp   r   )rg   rœ  r�   s      r\   r“   zManifest.add_source–  s>   € ä˜& $§,¡,Ô/Ø)/ˆ�‰�V×%Ñ%Ñ&Ø×Ñ×"Ñ" 6×#3Ñ#3Õ4r^   c                 ób   — t        || j                  «       || j                  |j                  <   y rU   )r¥  r¾   rp   rÆ   s     r\   Úadd_node_nofilezManifest.add_node_nofileœ  s"   € ä˜$ §
¡
Ô+Ø%)ˆ�
‰
�4—>‘>Ò"r^   c                 óÈ  — | j                  |«       t        |t        «      �r
t        |t        «      r!|sJ ‚|j	                  |j
                  |«       y t        |t        «      r&|j                  j                  |j
                  «       y t        |t        «      r&|j                  j                  |j
                  «       y t        |t        «      r&|j                  j                  |j
                  «       y t        |t        «      r&|j                  j                  |j
                  «       y y t        |t        «      ry |j                   j                  |j
                  «       y rU   )r§  r»   r)   r0   Úadd_testrp   r5   rÙ   r   r.   r¤  r2   r¥  r;   Ú	snapshotsr(   r¾   ©rg   rœ  r­   Ú	test_froms       r\   rÇ   zManifest.add_node¡  sô   € Ø×Ñ˜TÔ"Ü�kÔ#3Õ4Ü˜$¤Ô0Ù Ð �yØ×$Ñ$ T§^¡^°YÕ?Ü˜D¤&Ô)Ø×#Ñ#×*Ñ*¨4¯>©>Õ:Ü˜D¤(Ô+Ø×%Ñ%×,Ñ,¨T¯^©^Õ<Ü˜D¤%Ô(Ø×"Ñ"×)Ñ)¨$¯.©.Õ9Ü˜D¤,Ô/Ø×%Ñ%×,Ñ,¨T¯^©^Õ<ð 0ä˜Ô%6Ô7Øà×Ñ×$Ñ$ T§^¡^Õ4r^   Úexposurec                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  r¤  rp   r   )rg   rœ  r­  s      r\   Úadd_exposurezManifest.add_exposure´  ó>   € Ü˜( D§N¡NÔ3Ø-5ˆ�‰�x×)Ñ)Ñ*Ø×Ñ×$Ñ$ X×%7Ñ%7Õ8r^   r    c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  r¥   rp   r   )rg   rœ  r    s      r\   r¢   zManifest.add_function¹  r°  r^   rÕ   Úgenerated_fromc                 óê   — t        || j                  «       || j                  |j                  <   |s&|j                  j                  |j                  «       y |j	                  ||j                  «       y rU   )r¥  rÙ   rp   r   Úadd_metrics_from_measures)rg   rœ  rÕ   r²  s       r\   r×   zManifest.add_metric¾  sY   € ô 	˜& $§,¡,Ô/Ø)/ˆ�‰�V×%Ñ%Ñ&ÙØ×Ñ×&Ñ& v×'7Ñ'7Õ8à×1Ñ1°.À&×BRÑBRÕSr^   r  c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  r¥  rp   r   )rg   rœ  r  s      r\   Ú	add_groupzManifest.add_groupÈ  s:   € Ü˜% §¡Ô-Ø',ˆ�‰�E—O‘OÑ$Ø×Ñ×!Ñ! %§/¡/Õ2r^   c                 óº   — |j                   | j                  v r)| j                  |j                      j                  |«       y |g| j                  |j                   <   y rU   )rp   rô   r   rÆ   s     r\   Úadd_disabled_nofilezManifest.add_disabled_nofileÍ  sA   € à�>‰>˜TŸ]™]Ñ*Ø�M‰M˜$Ÿ.™.Ñ)×0Ñ0°Õ6à-1¨FˆD�M‰M˜$Ÿ.™.Ò)r^   c                 ó”  — | j                  |«       t        |t        «      �rpt        |t        «      r |sJ ‚|j	                  |j
                  |«       t        |t        «      r%|j                  j                  |j
                  «       t        |t        «      r%|j                  j                  |j
                  «       t        |t        «      r%|j                  j                  |j
                  «       t        |t        «      r%|j                  j                  |j
                  «       t        |t        «      r%|j                   j                  |j
                  «       t        |t"        «      r&|j$                  j                  |j
                  «       y y t        |t&        «      ry |j(                  j                  |j
                  «       y rU   )r¸  r»   r)   r0   r©  rp   r5   rÙ   r   r7   rä   r9   ró   r.   r¤  r/   r¥   r=   r¬  r(   r¾   r«  s       r\   Úadd_disabledzManifest.add_disabledÔ  s9  € Ø× Ñ  Ô&Ü�kÔ#3Õ4Ü˜$¤Ô0Ù Ð �yØ×$Ñ$ T§^¡^°YÔ?Ü˜$¤Ô'Ø×#Ñ#×*Ñ*¨4¯>©>Ô:Ü˜$¤
Ô+Ø×)Ñ)×0Ñ0°·±Ô@Ü˜$¤Ô.Ø×+Ñ+×2Ñ2°4·>±>ÔBÜ˜$¤Ô)Ø×%Ñ%×,Ñ,¨T¯^©^Ô<Ü˜$¤Ô-Ø×%Ñ%×,Ñ,¨T¯^©^Ô<Ü˜$Ô 2Ô3Ø×&Ñ&×-Ñ-¨d¯n©nÕ=ð 4ä˜Ô%6Ô7Øà×Ñ×$Ñ$ T§^¡^Õ4r^   rr   c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  rx   rp   r   )rg   rœ  rr   s      r\   rv   zManifest.add_docë  s:   € Ü˜#˜tŸy™yÔ)Ø#&ˆ�	‰	�#—-‘-Ñ Ø×Ñ×Ñ §¡Õ.r^   rí   c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  ró   rp   r   )rg   rœ  rí   s      r\   Úadd_semantic_modelzManifest.add_semantic_modelð  sB   € Ü˜.¨$×*>Ñ*>Ô?Ø9Gˆ×Ñ˜^×5Ñ5Ñ6Ø×#Ñ#×*Ñ*¨>×+CÑ+CÕDr^   Ú	unit_testc                 óö   — |j                   | j                  v r#t        || j                  |j                      «      ‚|| j                  |j                   <   |j                  j                  |j                   «       y rU   )rp   r¬  rG   r   )rg   rœ  r¾  s      r\   Úadd_unit_testzManifest.add_unit_testõ  s^   € Ø×Ñ $§/¡/Ñ1Ü,¨Y¸¿¹È	×H[ÑH[Ñ8\Ó]Ð]Ø/8ˆ�‰˜	×+Ñ+Ñ,Ø×Ñ×%Ñ% i×&9Ñ&9Õ:r^   Úfixturec                 óÎ   — |j                   | j                  v r#t        || j                  |j                      «      ‚|| j                  |j                   <   |j                   |_        y rU   )rp   r­  rG   rÁ  )rg   rœ  rÁ  s      r\   Úadd_fixturezManifest.add_fixtureû  sR   € Ø×Ñ §¡Ñ-Ü,¨W°d·m±mÀG×DUÑDUÑ6VÓWÐWØ+2ˆ�‰�g×'Ñ'Ñ(Ø%×/Ñ/ˆÕr^   rà   c                 ó¬   — t        || j                  «       || j                  |j                  <   |j                  j                  |j                  «       y rU   )r¥  rä   rp   r   )rg   rœ  rà   s      r\   râ   zManifest.add_saved_query  sB   € Ü˜+ t×'9Ñ'9Ô:Ø4?ˆ×Ñ˜;×0Ñ0Ñ1Ø×!Ñ!×(Ñ(¨×)>Ñ)>Õ?r^   Ú
expressionc                 ó  — t        |«      }d }t        |t        «      r>| j                  j	                  |j
                  |j                  |j                  | «      }|S |d   |d   }}| j                  j	                  |› d|› �d | «      }|S )Nr   r°   ri  )	r%   r»   r!   rG  rq   rt   rR   r¬   rB  )rg   rÅ  Úref_or_sourcer­   r–   Úsource_table_names         r\   Úfind_node_from_ref_or_sourcez%Manifest.find_node_from_ref_or_source  s˜   € ô 7°zÓBˆàˆÜ�m¤WÔ-Ø—?‘?×'Ñ'Ø×"Ñ" M×$9Ñ$9¸=×;PÑ;PÐRVóˆDð ˆð .;¸1Ñ-=¸}ÈQÑ?OÐ*ˆKØ×%Ñ%×*Ñ*¨k¨]¸!Ð<MÐ;NÐ+OÐQUÐW[Ó\ˆDàˆr^   c                 ót  — | j                   | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                   | j"                  | j$                  | j&                  | j(                  | j*                  | j,                  | j.                  | j0                  | j2                  | j4                  f}| j6                  |fS rU   )r¾   r—   ro  rx   r¤  r¥   rÙ   r¥  r¦  r§  rp  r¨  r©  rª  rô   r«  ró   r¬  rä   r¶  r¸  rº  r¼  rÀ  rÂ  rÄ  rÆ  r7  )rg   ÚprotocolÚargss      r\   Ú__reduce_ex__zManifest.__reduce_ex__  sï   € à�J‰JØ�L‰LØ�K‰KØ�I‰IØ�N‰NØ�N‰NØ�L‰LØ�K‰KØ�N‰NØ�J‰JØ�M‰MØ�O‰OØ×ÑØ×ÑØ�M‰MØ�M‰MØ× Ñ Ø�O‰OØ×ÑØ×ÑØ×ÑØ×ÑØ×ÑØ×2Ñ2Ø×!Ñ!Ø×!Ñ!Ø×&Ñ&ð7
ˆð: �~‰~˜tÐ#Ð#r^   c                 ót   — d}| j                  d|d ¬«      }|�|j                  t        j                  k(  rd}|S )NFÚget_incremental_microbatch_sqlr{  T)ry  r8  r0  r3  )rg   rà  Úmicrobatch_is_corerG  s       r\   Ú_microbatch_macro_is_corez"Manifest._microbatch_macro_is_core?  sJ   € Ø"ÐØ×5Ñ5Ø1À\Ð[_ð 6ó 
ˆ	ð
 Ð  Y×%7Ñ%7¼8¿=¹=Ò%HØ!%Ðà!Ð!r^   c                 óR   — t        «       j                  xs | j                  |¬«      S )N)rà  )rH   Ú8require_batched_execution_for_custom_microbatch_strategyrÑ  )rg   rà  s     r\   Úuse_microbatch_batcheszManifest.use_microbatch_batchesK  s)   € ä‹K×PÑPò IØ×-Ñ-¸<Ð-ÓHð	
r^   rU   )rS   r$   )r9  rb   rS   N)¨r€   r�   r‚   ræ   r   rê   r¾   r   rÀ   r4   rÏ   r—   r<   ro  r3   rx   r-   r¤  r.   r¥   r/   rÙ   r5   r¥  r2   r¦  r	   r§  r&   r"   rp  r¨  r   r˜  r©  rª  rB   r@   rô   r   r1   r«  ró   r9   r¬  r=   rä   r7   r­  r>   r¶  r   r`   r¸  r†   rº  r¨   r¼  rÑ   r¾  rÜ   rÀ  rè   rÂ  rû   rÄ  r  rÆ  r  rÈ  rœ   r”  rÊ  rI   r   rÌ  rq  rr  rÑ  rP  rÔ  rÖ  rÛ  rß  rO  rT  rë  rô  r   rQ   rý  r  r  r  r  r  r  r  r$   r"  r¡  r(  r*  r¢  r  r  r  r6  r<  rf  r>  r@  rB  rE  rG  rI  rK  rM  rO  rQ  rT  rV  rX  rZ  r]  r    ÚMaybeNonSourcere  ÚMaybeParsedSourcerj  ÚMaybeFunctionNoderp  ÚMaybeMetricNodert  ÚMaybeSavedQueryNoderx  r{  r~  rC  rŠ  r�  r›  r*   rŸ  r£  r)   r?   r“   r§  rÇ   r¯  r¢   r×   r¶  r¸  rº  rv   r½  rÀ  r(   rÃ  râ   r   r6   rÉ  rÍ  rÑ  rÔ  r„   r^   r\   rb   rb   ‘  sž
  … áPñ
 05ÀTÔ/J€Eˆ>˜#˜|Ð+Ñ,ÓJÙ5:È4Ô5P€Gˆ^˜CÐ!1Ð1Ñ2ÓPÙ).¸tÔ)D€FˆN˜3 ˜:Ñ&ÓDÙ/4ÀTÔ/J€Dˆ.˜˜mÐ+Ñ
,ÓJÙ/4ÀTÔ/J€Iˆ~˜c 8˜mÑ,ÓJÙ38ÈÔ3N€Iˆ~˜c <Ð/Ñ0ÓNÙ+0ÀÔ+F€Gˆ^˜C ˜KÑ(ÓFÙ).¸tÔ)D€FˆN˜3 ˜:Ñ&ÓDÙ*/ÀÔ*E€Iˆ~˜c 3˜hÑ'ÓEÙ05ÀdÔ0K€Eˆ>˜#˜}Ð,Ñ-ÓKÙ!&Ð7GÔ!H€HÐÓHÙ!&°tÔ!<€J��S˜#�X‘Ó<Ù&+Ð<NÔ&O€KÐ#ÓOÙ=BÐSWÔ=X€N�N 9¨kÐ#9Ñ:ÓXÙ;@ÐQUÔ;V€Hˆn˜S $ Ñ"7Ð7Ñ8ÓVÙ).¸tÔ)D€Hˆn˜S #˜XÑ&ÓDÙ:?ÐPTÔ:U€O�^ C¨Ð$6Ñ7ÓUÙ:?ÐPTÔ:U€J�˜sÐ$6Ð6Ñ7ÓUÙ5:È4Ô5P€M�> # z /Ñ2ÓPÙ9>ÈtÔ9T€Hˆn˜SÐ"5Ð5Ñ6ÓTá',Ø©^ÉNÑ[ô(€K�˜)Ñ$ó ñ .3Ø©^ÉNÑ[ô.€N�H˜\Ñ*ó ñ ,1Ø©^ÉNÑ[ô,€K�˜-Ñ(ó ñ .3Ø©^ÉNÑ[ô.€N�H˜\Ñ*ó ñ 7<Ø©^ÉNÑ[ô7Ð˜Ð"2Ñ3ó ñ QVØ©^ÉNÑ[ôQÐ% xÐ0LÑ'Mó ñ 27Ø©^ÉNÑ[ô2Ð�h˜~Ñ.ó ñ 27Ø©^ÉNÑ[ô2Ð�h˜~Ñ.ó ñ ;@Ø©^ÉNÑ[ô;Ð˜8Ð$6Ñ7ó ñ 27Ø©^ÉNÑ[ô2Ð�h˜~Ñ.ó ñ "'Ø#Ù-¹nÑMô"€M�;ó ñ Ù&Ó(×-Ñ-Ù-¹nÑMô€Eˆ4ó ñ 9>ØÙ-¹nÑMô9€O�X˜d 3¨¨U©Ð#3Ñ4Ñ5ó ñ AFØÙ-¹nÑMôAÐ˜  c¨4°°U°
Ñ+;Ð&;Ñ!<Ñ=ó ñ
¨°$©ó ð ñó ðò
ò*#ð	B°cð 	B¸dÀ3¹ió 	Bð
àð
ð "ð
ð ð	
ð
 ð
ð 
ó
ð"(VØð(VØ7:ð(VØJMð(Và	�%‰ó(VðT 7¨3°¨<Ñ#8ó ó&
ò`òò,)ò"ò#ò,Zð ðÐ7Gð ÈJò ó ðð.T°NÀ3È
À?Ñ4Só Tð
Ø& s¨D°Ñ,<Ð'<Ñ=ó
ð ð
¸ÀÀ^Ð@SÑ8Tò 
ó ð
ð ð
Ø$ W¨S°$°~Ñ2FÐ-FÑ%GÑHò
ó ð
ó
ò2cð ð ¨ó ð. ð ˜Iò  ó ð ò
+ð ð#˜|ò #ó ð#ò
1ð ð ˜Mò  ó ð ð
 ð#˜|ò #ó ð#ð
 ð(Ð$4ò (ó ð(ð ð6Ð2Nò 6ó ð6ò/ð ð% ò %ó ð%ò
5ð ð% ò %ó ð%ð
 ð*Ð&8ò *ó ð*ð
 ð% ò %ó ð%ð
 ñYó ðYð!à$ð!ð ð!ð ' s™mð	!ð
 ' {Ñ3ð!ð ð!ð ð!ð 
ó!ðJàðð ðð ð	ð
 ðð 
óð6à!ðð "*¨#¡ðð ð	ð
 ðð 
óð.àðð  (¨™}ðð ð	ð
 ðð 
óð2à!$ðð %-¨S¡Mðð ð	ð
 ðð 
óðD )-ñà ðð ðð ð	ð
 ! ™ðð 
�-Ñ	 óð*àðð ˜#‘ðð ð	ð
 ðð 
�-Ñ	 óð&
Ø#ð
Ø3Að
ØQYÐZaÑQbð
à	ó
ð4
Ø#ð
Ø3Að
ØQYÐZaÑQbð
à	ó
ó* ð<3 Zð 3¸ó 3ð23 Jð 3°4ó 3ð5Ð&6ð 5Ð@Yó 5ð* Ló *ñ
5 Mð 5¸ó 5ð&9Ð(8ð 9ÀHó 9ð
9¨
ð 9¸ló 9ð ^bñTØ+ðTØ5;ðTØMUÐVYÉ]óTð3Ð%5ð 3¸eó 3ð
3¨ó 3ñ5¨ð 5¸_ó 5ð./ :ð /°Mó /ð
EÐ.>ð EÐP]ó Eð
;Ð)9ð ;ÐFXó ;ð0Ð'8ð 0ÐCVó 0ð@Ð+;ð @È*ð @ÐY]ó @ðØðà	�%˜	Ð#3Ð3Ñ4Ñ	5óò.$ð@
"°cð 
"¸dó 
"ð
°3ð 
¸4ô 
r^   rb   c                   ó   — e Zd Zdd„Zy)ÚMacroManifestNc                 óü   — || _         t        t        j                  rt        j                  j                  nd t        j                  rt        «       j                  nd ¬«      | _        i | _        d | _	        d | _
        y )N)r  r  )ro  r"   r   r  r  rH   r  rp  r¨  rq  rr  )rg   ro  s     r\   rh   zMacroManifest.__init__S  s]   € ØˆŒÜ(Ü/7×/CÒ/C”H×(Ñ(×+Ò+Èä:B×:NÒ:N”	“×6Ò6ÐTXô
ˆŒð +-ˆŒØAEˆÔØIMˆÕr^   )rS   N)r€   r�   r‚   rh   r„   r^   r\   rÛ  rÛ  R  s   „ ôNr^   rÛ  r-  Úsrcc                 óR   — | j                   |v rt        | || j                      «      ‚y rU   )rp   rG   )r-  rÝ  s     r\   r¥  r¥  e  s)   € Ø‡�˜#ÑÜ(¨°°E·O±OÑ0DÓEÐEð r^   ÚK_TÚV_TrZ   Úold_filert   c                 óL   — | |vrt        dj                  | ||«      «      ‚||    S )NzQExpected to find "{}" in cached "result.{}" based on cached file information: {}!)rF   r;  )rZ   rÝ  rá  rt   s       r\   Ú_expect_valuerã  n  s4   € Ø
�#�~Üð.ß.4©f°S¸$ÀÓ.Ió
ð 	
ð ˆs‰8€Or^   rU   )�ÚenumÚcollectionsr   Údataclassesr   r   r   Ú	itertoolsr   Úmultiprocessing.synchronizer   Útypingr	   r
   r   r   r   r   r   r   r   r   r   r   r   r   Útyping_extensionsr   Údbt_common.exceptionsr{   Údbt_common.utilsÚdbtr   r   Údbt.adapters.exceptionsr   r   rÞ  r   Údbt.artifacts.resourcesr   r   r   r    r!   Údbt.artifacts.schemas.manifestr"   r#   r$   Údbt.clients.jinja_staticr%   Údbt.contracts.filesr&   r'   r(   r)   r*   Údbt.contracts.graph.nodesr+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   Údbt.contracts.graph.unparsedr@   rA   Údbt.contracts.utilrB   Údbt.events.typesrC   rD   Údbt.exceptionsrE   rF   rG   Ú	dbt.flagsrH   Údbt.mp_contextrI   Údbt.node_typesrJ   rK   rL   rM   Údbt_common.dataclass_schemarN   Údbt_common.events.contextvarsrO   Údbt_common.events.functionsrP   Údbt_common.helper_typesrQ   rÀ   rƒ   ÚDocNameÚRefNamer]   r`   r†   rœ   r¨   rÑ   rÜ   rè   rû   r  r  r  r  r"  r'  r.  ÚIntEnumr0  r7  rE  rQ  rT  r`  rb  rg  ri  r×  rØ  rÙ  ÚMaybeDocumentationrÖ  rÕ  rk  rm  r”  r˜  r¡  r¢  rb   rÛ  ÚAnyManifestr¥  rß  rà  rã  r„   r^   r\   ú<module>r     sF  ðÛ Ý #ß 1Ñ 1Ý Ý ,÷÷ ÷ ÷ õ" 'ã Û ß &÷õ ;÷õ ÷ XÑ WÝ C÷õ ÷÷ ÷ ÷ ÷ õ ÷. FÝ (ß L÷ñ õ
  Ý )÷ó õ 6Ý 7Ý 2Ý +à€Ø
€Ø
€ð°h¸{Ñ6Kð ÐPXÐYaÑPbó ô"(�ô (ô>+�=ô +ôB-�]ô -ôBp�Mô pôf+�=ô +ôB 1�}ô  1ôF3 =ô 3ôn6!�]ô 6!ôr,�]ô ,ô
"˜ô "ðP %)ñ9Øð9àð9ð ˜S‘Mð9ð 
ˆ(�3‰-Ñó	9ò 2ðE˜D Ñ.ó Eð"'˜T #™Yó 'ò:ôˆt�|Š|ô ð ÷ð ó ðð& ô#˜~ó #ó ð#ñL ˆC�~Ô&€ôL�D˜‘Gô Lð4!˜ð !°3ð !È3ÈsÉ8ð !ÐX`ó !ôA�ô Añ ˆCƒL€ð ôˆw�q‰zó ó ðð ˜U <°¸,Ñ1GÐ#GÑHÑIÐ ð ˜5 ¨°&Ñ)9Ð!9Ñ:Ñ;€ð ˜u Z°¸*Ñ1EÐ%EÑFÑGÐ ð ˜mÑ,Ð ð Ø	ØØÐ!Ñ"ð	$ññÐ ð ˜% ¨h°|Ñ.DÐ DÑEÑF€ñ ˆC�Ô'€÷
I!ñ I!ðX ÷(ð (ó ð(ð
 ôP˜ó Pó ðPñ �\¨Ô4€
ÙÐ)°Ô@€ð ô}
ˆ|˜]ó }
ó ð}
ô@N�Lô Nð  �H˜mÐ+Ñ,€ðF˜Xð F¨G°C¸°MÑ,Bó Fñ
 ˆeƒn€Ùˆeƒn€ð�sð  ¨¨c¨Ñ!2ð ¸jð ÐPSð ÐX[ô r^   