o
    
i                     @   s   d dl Z d dlZddlmZ G dd deZdd Zdd	 Zd
d Zdd Z	dd Z
dd ZG dd deZG dd deZdd Zdd Zdd ZdS )    N   )dedentc                   @   s   e Zd Zdd Zdd ZdS )Dicec                 C   s   t | ||gS N)tuple__new__)clsab r   X/home/ubuntu/.local/lib/python3.10/site-packages/srsly/tests/ruamel_yaml/test_add_xxx.pyr      s   zDice.__new__c                 C   s   d|  S )NzDice(%s,%s)r   selfr   r   r   __repr__   s   zDice.__repr__N)__name__
__module____qualname__r   r   r   r   r   r   r   
   s    r   c                 C   s(   |  |}tt|d\}}t||S )Nd)construct_scalarmapintsplitr   )loadernodevaluer	   r
   r   r   r   dice_constructor   s   

r   c                 C   s   |  ddj| S )N!dicez{}d{})represent_scalarformat)dumperdatar   r   r   dice_representer      r!   c                  C   sj   dd l } | jdt tt | jjd| jjd}t	|dks#J W d    d S 1 s.w   Y  d S )Nr   r   initial hit points: !dice 8d4Loader!{'initial hit points': Dice(8,4)})
srsly.ruamel_yamlruamel_yamladd_constructorr   pytestraises
ValueErrorloadr%   strsrslyr    r   r   r   test_dice_constructor   s   "r1   c                  C   sr   dd l } tt& | jjdt| jjd | jjd| jjd}t	|dks'J W d    d S 1 s2w   Y  d S )Nr   r   r$   r#   r&   )
r'   r*   r+   r,   r(   r)   r   r%   r-   r.   r/   r   r   r   !test_dice_constructor_with_loader'   s   
"r2   c                  C   s>   dd l } | jtt | jjttddddddksJ d S )Nr   
      )goldFdefault_flow_stylezgold: !dice 10d6
)r'   r(   add_representerr   r!   dumpdictr0   r   r   r   test_dice_representer4   s
   r<   c                  C   s   dd l } td}tt6 | jd| | jjt	t
dddddd	ks(J | jjd
| jjdt	t
dddks<J W d    d S 1 sGw   Y  d S )Nr   z	^\d+d\d+$r   r3      )treasureFr6   ztreasure: 10d20
zdamage: 5d10r$      )damage)r'   recompiler*   r+   r,   r(   add_implicit_resolverr9   r:   r   r-   r%   )r0   patternr   r   r   test_dice_implicit_resolver?   s   

"rE   c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
Obj1c                 C   s   || _ d | _d S r   )_suffix_node)r   suffixr   r   r   __init__O   s   
zObj1.__init__c                 C   
   || _ d S r   )rH   )r   nr   r   r   add_nodeS      
zObj1.add_nodec                 C   s   d| j |  f S )NzObj1(%s->%s))rG   itemsr   r   r   r   r   V   r"   zObj1.__repr__c                 C   s
   t | jS r   )reprrH   r   r   r   r   r9   Y   rN   z	Obj1.dumpN)r   r   r   rJ   rM   r   r9   r   r   r   r   rF   N   s
    rF   c                   @   s(   e Zd ZdZedd Zedd ZdS )YAMLObj1z!obj:c                 C   s6   dd l }t|}t||jjr||| |S t)Nr   )r'   rF   
isinstancer(   MappingNoderM   construct_mappingNotImplementedError)r   r   rI   r   r0   obj1r   r   r   	from_yaml`   s   zYAMLObj1.from_yamlc                 C   s   | | j|j | S r   )r   yaml_tagrG   r9   )r   r   r    r   r   r   to_yamlk   s   zYAMLObj1.to_yamlN)r   r   r   rX   classmethodrW   rY   r   r   r   r   rQ   ]   s    

rQ   c                  C   s   dd l } | jttj | jtjtj t	
t! | jjd| jjd}t| | j|dks3J W d    d S 1 s>w   Y  d S )Nr   !obj:x.2
a: 1r$   !obj:x.2 "{'a': 1}"
)r'   r(   r8   rF   rQ   rY   add_multi_constructorrX   rW   r*   r+   r,   r-   r%   printr9   r0   xr   r   r   test_yaml_objp   s   "ra   c                  C   s   dd l } | jjttj| jjd | jjtjtj	| jj
d tt! | jjd| jj
d}t| | j|dks;J W d    d S 1 sFw   Y  d S )Nr   )Dumperr$   r[   r\   )r'   r(   r8   rF   rQ   rY   rb   r]   rX   rW   r%   r*   r+   r,   r-   r^   r9   r_   r   r   r   $test_yaml_obj_with_loader_and_dumper{   s   "rc   c                     s^   dd l  G  fddd jj} td} jj|dd} jj|ddd	|d
dks-J d S )Nr   c                       sD   e Zd Z jjZ jjZdZdd Z	e
dd Ze
 fddZdS )	ztest_issue_127.<locals>.Refz!Refc                 S   rK   r   )
logical_id)r   rd   r   r   r   rJ      rN   z$test_issue_127.<locals>.Ref.__init__c                 S   s   | | |S r   )r   )r   r   r   r   r   r   rW      s   z%test_issue_127.<locals>.Ref.from_yamlc                    s4   t |j jjjr|jj}nd }|j| j|j|dS )N)style)rR   rd   r(   scalarstringScalarStringre   r   rX   )r   r   r    re   r;   r   r   rY      s   
z#test_issue_127.<locals>.Ref.to_yamlN)r   r   r   r(   RoundTripConstructoryaml_constructorRoundTripRepresenteryaml_representerrX   rJ   rZ   rW   rY   r   r;   r   r   Ref   s    
rl   z    AList:
      - !Ref One
      - !Ref 'Two'
      - !Ref
        Two and a half
    BList: [!Ref Three, !Ref "Four"]
    CList:
      - Five Six
      - 'Seven Eight'
    T)preserve_quotes      )indentblock_seq_indentz
    Two andz Two and)r'   r(   
YAMLObjectr   round_trip_loadround_trip_dumpreplace)rl   documentr    r   r;   r   test_issue_127   s   
rw   )rA   r*   	roundtripr   r   r   r   r!   r1   r2   r<   rE   r:   rF   objectrQ   ra   rc   rw   r   r   r   r   <module>   s   