
    ij"                        d dl mZ d dlZd dlmZmZ d dlmZmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlmZmZmZ 	 g dZ G d d	e      Z G d
 de      Z G d d      Zy)    )annotationsN)MarkedYAMLErrorReusedAnchorWarning)nprintnprintf)StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEvent)MappingNode
ScalarNodeSequenceNode)ComposerComposerErrorMaxDepthExceededErrorc                      e Zd Zy)r   N__name__
__module____qualname__     ]/home/ubuntu/.cache/pipx/cdb5059130eadca/lib/python3.12/site-packages/ruamel/yaml/composer.pyr   r          r   r   c                      e Zd Zy)r   Nr   r   r   r   r   r      r   r   r   c                      e Zd ZdddZedd       Zedd       ZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZddZy)r   Nc                    || _         | j                   (t        | j                   dd       | | j                   _        i | _        d| _        d| _        y )N	_composerTr   )loadergetattrr"   anchorswarn_double_anchorsdepth)selfr#   s     r   __init__zComposer.__init__$   sG    ;;"wt{{K'N'V$(DKK!')#' 
r   c                    t        | j                  d      r| j                  j                   | j                  j                  S Ntyp)hasattrr#   parser_parserr(   s    r   r.   zComposer.parser,   s-    4;;&KK{{"""r   c                    t        | j                  d      r| j                  j                   | j                  j                  S r+   )r-   r#   resolver	_resolverr0   s    r   r2   zComposer.resolver2   s/     4;;&KK  {{$$$r   c                    | j                   j                  t              r| j                   j                          | j                   j                  t               S N)r.   check_eventr   	get_eventr	   r0   s    r   
check_nodezComposer.check_node9   s?    ;;""#34KK!!# ;;**>:::r   c                b    | j                   j                  t              s| j                         S y r5   )r.   r6   r	   compose_documentr0   s    r   get_nodezComposer.get_nodeA   s(    {{&&~6((** 7r   c                   | j                   j                          d }| j                   j                  t              s| j	                         }| j                   j                  t              s<| j                   j                         }t        d|j                  d|j                        | j                   j                          |S )Nz(expected a single document in the streamzbut found another document)r.   r7   r6   r	   r:   r   
start_mark)r(   documentevents      r   get_single_nodezComposer.get_single_nodeF   s     {{&&~6,,.H {{&&~6KK))+E:##,  	  	r   c                    i | _         | j                  j                          | j                  d d       }| j                  j                          |S r5   )r%   r.   r7   compose_node)r(   nodes     r   r:   zComposer.compose_document^   sD       t, 	r   c                    |S r5   r   )r(   as     r   return_aliaszComposer.return_aliask   s    r   c                   | j                   j                  t              rm| j                   j                         }|j                  }|| j
                  vrt        d d d||j                        | j                  | j
                  |         S | xj                  dz  c_	        | j                   j                         }| j                  j                  rI| j                  | j                  j                  kD  r&t        d d d| j                   d|j                        |j                  }|b| j                  rV|| j
                  v rHd|d| j
                  |   j                   d|j                   }t        j                   |t"        d	       | j$                  j'                  ||       | j                   j                  t(              r| j+                  |      }na| j                   j                  t,              r| j/                  |      }n0| j                   j                  t0              r| j3                  |      }| j$                  j5                          | xj                  dz  c_	        S )
Nzfound undefined alias    z*maximum depth of data structure exceeded (z)), if necessary increase YAML().max_depthz
found duplicate anchor z
first occurrence z
second occurrence    )
stacklevel)r.   r6   r   r7   anchorr%   r   r=   rF   r'   
peek_eventr#   	max_depthr   r&   warningswarnr   r2   descend_resolverr   compose_scalar_noder   compose_sequence_noder
   compose_mapping_nodeascend_resolver)r(   parentindexr?   aliasrK   wsrC   s           r   rB   zComposer.compose_noden   s   ;;"":.KK))+ELLEDLL(#$"8	 BEDTDT  $$T\\%%899

a
&&(;;  TZZ$++2G2G%G'<TZZL I9 9    ''Fdll,B/z :((,V(<(G(G'H I)).)9)9(:< 
 b"5!D&&vu5;;"";/++F3D[[$$%78--f5D[[$$%67,,V4D%%'

a
r   c           	        | j                   j                         }|j                  }|t        |      dk(  rG| j                  j                  t        |j                  |j                        }t        |t              rJ t        ||j                  |j                  |j                  |j                  |j                  |      }||| j                  |<   |S )N!)stylecommentrK   )r.   r7   ctagstrr2   resolver   valueimplicit
isinstancer=   end_markr[   r\   r%   )r(   rK   r?   tagrC   s        r   rQ   zComposer.compose_scalar_node   s    %%'jj;#c(c/--''
EKKPC!#s+++KKNN++MM
 #'DLL r   c           	     p   | j                   j                         }|j                  }|t        |      dk(  r=| j                  j                  t        d |j                        }t        |t              rJ t        |g |j                  d |j                  |j                  |      }||| j                  |<   d}| j                   j                  t              sP|j                  j!                  | j#                  ||             |dz  }| j                   j                  t              sP| j                   j                         }|j                  du rE|j                  9|j                  |j                  }t%        d| dd       |j                  |_        |j&                  |_        | j)                  ||       |S )	NrZ   
flow_styler\   rK   r   rH   Tz8Warning: unexpected end_event commment in sequence node 
zC    if possible, please report an issue with reproducable data/code)r.   r7   r]   r^   r2   r_   r   ra   rb   r=   rg   r\   r%   r6   r   r`   appendrB   r   rc   check_end_doc_comment)r(   rK   start_eventrd   rC   rV   	end_eventxs           r   rR   zComposer.compose_sequence_node   s   kk++-;#c(c/--''dK<P<PQC!#s+++"""--''
 #'DLL ++))*:;JJd//e<=QJE ++))*:; KK))+	??d"y'8'8'D||'OONqcQSTY %,,DL!**""9d3r   c           	     >   | j                   j                         }|j                  }|t        |      dk(  r=| j                  j                  t        d |j                        }t        |t              rJ t        |g |j                  d |j                  |j                  |      }||| j                  |<   | j                   j                  t              sa| j                  |d       }| j                  ||      }|j                   j#                  ||f       | j                   j                  t              sa| j                   j                         }|j                  du r|j                  |j                  |_        |j$                  |_        | j'                  ||       |S )NrZ   rf   T)r.   r7   r]   r^   r2   r_   r   ra   rb   r=   rg   r\   r%   r6   r   rB   r`   ri   rc   rj   )r(   rK   rk   rd   rC   item_key
item_valuerl   s           r   rS   zComposer.compose_mapping_node   s`   kk++-;#c(c/--''T;;O;OPC!#s+++"""--''
 #'DLL ++))/:((t4H
 **4:JJJx45 ++))/: KK))+	??d"y'8'8'D$,,DL!**""9d3r   c                    |j                   ro|j                   d   r_|j                   	d d g|_         t        |t              rJ |j                   j                  |j                   d          d |j                   d<   y y y )NrH   )r\   rb   r   ri   )r(   rl   rC   s      r   rj   zComposer.check_end_doc_comment   st    !2!21!5||# $d|!$444 LL	 1 1! 45#'Ia  "6r   r5   )r#   AnyreturnNone)rs   rr   )r(   rr   rs   rr   )rE   rr   rs   rr   )rU   rr   rV   rr   rs   rr   )rK   rr   rs   rr   )rl   rr   rC   rr   rs   rt   )r   r   r   r)   propertyr.   r2   r8   r;   r@   r:   rF   rB   rQ   rR   rS   rj   r   r   r   r   r   #   sd     # #
 % %;+
0%N( D D	(r   r   )
__future__r   rN   ruamel.yaml.errorr   r   ruamel.yaml.compatr   r   ruamel.yaml.eventsr   r	   r
   r   r   r   r   r   ruamel.yaml.nodesr   r   r   typingrr   DictOptionalList__all__r   r   r   r   r   r   <module>r      sX    "  B .	 	 	 D C A	O 		O 	S( S(r   