
    Be                          d dl Z d dlmZmZ d dlmZ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 	 ddgZ G d de      Z G d	 d      Zy)
    N)MarkedYAMLErrorReusedAnchorWarning)_Fnprintnprintf)StreamStartEventStreamEndEventMappingStartEventMappingEndEventSequenceStartEventSequenceEndEvent
AliasEventScalarEvent)MappingNode
ScalarNodeSequenceNodeComposerComposerErrorc                       e Zd Zy)r   N)__name__
__module____qualname__     4lib/python3.12/site-packages/ruamel/yaml/composer.pyr   r      s    r   c                   p    e Zd ZddZed        Zed        Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)r   Nc                     || _         | j                   (t        | j                   dd       | | j                   _        i | _        y )N	_composer)loadergetattrr   anchors)selfr   s     r   __init__zComposer.__init__   s8    ;;"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	_resolverr*   s    r   r,   zComposer.resolver-   s/     4;;&KK  {{$$$r   c                     | j                   j                  t              r| j                   j                          | j                   j                  t               S N)r(   check_eventr   	get_eventr	   r*   s    r   
check_nodezComposer.check_node5   sA     ;;""#34KK!!# ;;**>:::r   c                 b    | j                   j                  t              s| j                         S y r/   )r(   r0   r	   compose_documentr*   s    r   get_nodezComposer.get_node>   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(   r1   r0   r	   r4   r   
start_mark)r"   documentevents      r   get_single_nodezComposer.get_single_nodeD   s     	 {{&&~6,,.H {{&&~6KK))+E:##,  	  	r   c                     | j                   j                          | j                  d d       }| j                   j                          i | _        |S r/   )r(   r1   compose_noder!   )r"   nodes     r   r4   zComposer.compose_document]   sF     	   t, 	r   c                     |S r/   r   )r"   as     r   return_aliaszComposer.return_aliask   s    r   c                    | j                   j                  t              ru| j                   j                         }|j                  }|| j
                  vr#t        d d t        d|      |j                        | j                  | j
                  |         S | j                   j                         }|j                  }|\|| j
                  v rNdj                  || j
                  |   j                  |j                        }t        j                  |t               | j                  j!                  ||       | j                   j                  t"              r| j%                  |      }na| j                   j                  t&              r| j)                  |      }n0| j                   j                  t*              r| j-                  |      }| j                  j/                          S )Nzfound undefined alias {alias!r})aliaszE
found duplicate anchor {!r}
first occurrence {}
second occurrence {})r(   r0   r   r1   anchorr!   r   r   r7   r@   
peek_eventformatwarningswarnr   r,   descend_resolverr   compose_scalar_noder   compose_sequence_noder
   compose_mapping_nodeascend_resolver)r"   parentindexr9   rB   rC   wsr=   s           r   r<   zComposer.compose_nodeo   sz   ;;"":.KK))+ELLEDLL(#8F$$	  $$T\\%%899&&(%$,,v*>*I*I5K[K[\  b"56&&vu5;;"";/++F3D[[$$%78--f5D[[$$%67,,V4D%%'r   c           	      t   | j                   j                         }|j                  }||dk(  r5| j                  j	                  t
        |j                  |j                        }t        ||j                  |j                  |j                  |j                  |j                  |      }||| j                  |<   |S )N!)stylecommentrC   )r(   r1   tagr,   resolver   valueimplicitr7   end_markrR   rS   r!   )r"   rC   r9   rT   r=   s        r   rI   zComposer.compose_scalar_node   s    %%'ii;#*--''
EKKPCKKNN++MM
 #'DLL r   c           	      J   | j                   j                         }|j                  }||dk(  r+| j                  j	                  t
        d |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 rM|j                  A|j                  $t!        dj#                  |j                               |j                  |_	        |j$                  |_        | j'                  ||       |S )NrQ   
flow_stylerS   rC   r      Tz:Warning: unexpected end_event commment in sequence node {})r(   r1   rT   r,   rU   r   rW   r7   r[   rS   r!   r0   r   rV   appendr<   r   rE   rX   check_end_doc_comment)r"   rC   start_eventrT   r=   rN   	end_events          r   rJ   zComposer.compose_sequence_node   sc   kk++-oo;#*--''dK<P<PQC"""--''
 #'DLL ++))*:;JJd//e<=QJE ++))*:; KK))+	??d"y'8'8'D||'$fT__5 %,,DL!**""9d3r   c           	         | j                   j                         }|j                  }||dk(  r+| j                  j	                  t
        d |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 )NrQ   rZ   T)r(   r1   rT   r,   rU   r   rW   r7   r[   rS   r!   r0   r   r<   rV   r]   rX   r^   )r"   rC   r_   rT   r=   item_key
item_valuer`   s           r   rK   zComposer.compose_mapping_node   sJ   kk++-oo;#*--''T;;O;OPC"""--''
 #'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 )Nr\   )rS   
isinstancer   r]   )r"   r`   r=   s      r   r^   zComposer.check_end_doc_comment   sq    !2!21!5||# $d|!$44 LL	 1 1! 45#'Ia  "6r   r/   )r   r   r   r#   propertyr(   r,   r2   r5   r:   r4   r@   r<   rI   rJ   rK   r^   r   r   r   r   r      sd     # # % %;+2"H&B D
(r   )rF   ruamel.yaml.errorr   r   ruamel.yaml.compatr   r   r   ruamel.yaml.eventsr   r	   r
   r   r   r   r   r   ruamel.yaml.nodesr   r   r   typingAnyDictOptionalList__all__r   r   r   r   r   <module>rq      sR     B 2 2	 	 	 D C 
'	O 	U( U(r   