o
    ÝhÃ   ã                   @   s”   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	„ d	eƒZG dd„ dƒZdS )é    N)ÚMarkedYAMLErrorÚReusedAnchorWarning)Ú_FÚnprintÚnprintf)ÚStreamStartEventÚStreamEndEventÚMappingStartEventÚMappingEndEventÚSequenceStartEventÚSequenceEndEventÚ
AliasEventÚScalarEvent)ÚMappingNodeÚ
ScalarNodeÚSequenceNodeF)ÚAnyÚDictÚOptionalÚListÚComposerÚComposerErrorc                   @   s   e Zd ZdS )r   N)Ú__name__Ú
__module__Ú__qualname__© r   r   ú\/var/www/html/magazine_api/magazine_env/lib/python3.10/site-packages/ruamel/yaml/composer.pyr      s    c                   @   s~   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dS )r   Nc                 C   s4   || _ | j d urt| j dd ƒd u r| | j _i | _d S )NÚ	_composer)ÚloaderÚgetattrr   Úanchors)Úselfr   r   r   r   Ú__init__   s   
zComposer.__init__c                 C   ó   t | jdƒr
| jj | jjS ©NÚtyp)Úhasattrr   ÚparserÚ_parser©r!   r   r   r   r'   &   s   zComposer.parserc                 C   r#   r$   )r&   r   ÚresolverZ	_resolverr)   r   r   r   r*   -   s   zComposer.resolverc                 C   s$   | j  t¡r| j  ¡  | j  t¡ S ©N)r'   Úcheck_eventr   Ú	get_eventr   r)   r   r   r   Ú
check_node5   s   
zComposer.check_nodec                 C   s   | j  t¡s
|  ¡ S d S r+   )r'   r,   r   Úcompose_documentr)   r   r   r   Úget_node>   s   ÿzComposer.get_nodec                 C   sX   | j  ¡  d }| j  t¡s|  ¡ }| j  t¡s%| j  ¡ }td|jd|jƒ‚| j  ¡  |S )Nz(expected a single document in the streamzbut found another document)r'   r-   r,   r   r/   r   Ú
start_mark)r!   ZdocumentÚeventr   r   r   Úget_single_nodeD   s   

ü
zComposer.get_single_nodec                 C   s*   | j  ¡  |  d d ¡}| j  ¡  i | _|S r+   )r'   r-   Úcompose_noder    )r!   Únoder   r   r   r/   ]   s
   

zComposer.compose_documentc                 C   s   |S r+   r   )r!   Úar   r   r   Úreturn_aliask   s   zComposer.return_aliasc                 C   sö   | j  t¡r'| j  ¡ }|j}|| jvrtd d td|d|jƒ‚|  	| j| ¡S | j  
¡ }|j}|d urJ|| jv rJd || j| j|j¡}t |t¡ | j ||¡ | j  t¡r]|  |¡}n| j  t¡ri|  |¡}n| j  t¡rt|  |¡}| j ¡  |S )Nzfound undefined alias {alias!r})ÚaliaszE
found duplicate anchor {!r}
first occurrence {}
second occurrence {})r'   r,   r   r-   Úanchorr    r   r   r1   r7   Z
peek_eventÚformatÚwarningsÚwarnr   r*   Zdescend_resolverr   Úcompose_scalar_noder   Úcompose_sequence_noder	   Úcompose_mapping_nodeZascend_resolver)r!   ÚparentÚindexr2   r8   r9   Úwsr5   r   r   r   r4   o   s8   


ü

þ

zComposer.compose_nodec              	   C   sj   | j  ¡ }|j}|d u s|dkr| j t|j|j¡}t||j|j|j	|j
|j|d}|d ur3|| j|< |S )Nú!)ÚstyleÚcommentr9   )r'   r-   Útagr*   Úresolver   ÚvalueÚimplicitr1   Úend_markrD   rE   r    )r!   r9   r2   rF   r5   r   r   r   r=   “   s    
ù	
zComposer.compose_scalar_nodec              	   C   sð   | j  ¡ }|j}|d u s|dkr| j td |j¡}t|g |jd |j|j	|d}|d ur0|| j
|< d}| j  t¡sL|j |  ||¡¡ |d7 }| j  t¡r8| j  ¡ }|jdu rl|j	d url|j	d urhtd |j¡ƒ |j	|_	|j|_|  ||¡ |S )NrC   ©Ú
flow_stylerE   r9   r   é   Tz:Warning: unexpected end_event commment in sequence node {})r'   r-   rF   r*   rG   r   rI   r1   rL   rE   r    r,   r   rH   Úappendr4   r   r:   rJ   Úcheck_end_doc_comment)r!   r9   Ústart_eventrF   r5   rA   Ú	end_eventr   r   r   r>   ¦   s>   
ù	
þ

þzComposer.compose_sequence_nodec              	   C   sÞ   | j  ¡ }|j}|d u s|dkr| j td |j¡}t|g |jd |j|j	|d}|d ur0|| j
|< | j  t¡sP|  |d ¡}|  ||¡}|j ||f¡ | j  t¡r6| j  ¡ }|jdu rc|j	d urc|j	|_	|j|_|  ||¡ |S )NrC   rK   T)r'   r-   rF   r*   rG   r   rI   r1   rL   rE   r    r,   r
   r4   rH   rN   rJ   rO   )r!   r9   rP   rF   r5   Zitem_keyZ
item_valuerQ   r   r   r   r?   Ç   s4   
ù	
÷

zComposer.compose_mapping_nodec                 C   sZ   |j r)|j d r+|j d u rd d g|_ t|tƒrJ ‚|j  |j d ¡ d |j d< d S d S d S )NrM   )rE   Ú
isinstancer   rN   )r!   rQ   r5   r   r   r   rO   é   s   

øzComposer.check_end_doc_commentr+   )r   r   r   r"   Úpropertyr'   r*   r.   r0   r3   r/   r7   r4   r=   r>   r?   rO   r   r   r   r   r      s     


	$!")r;   Zruamel.yaml.errorr   r   Zruamel.yaml.compatr   r   r   Zruamel.yaml.eventsr   r   r	   r
   r   r   r   r   Zruamel.yaml.nodesr   r   r   Útypingr   r   r   r   Ú__all__r   r   r   r   r   r   Ú<module>   s   (
