o
    Wi9                     @  s   d dl mZ d dlmZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dlm
Z
 d dlmZ d d	lmZ G d
d deZG dd deZG dd deZG dd deZd ddZd!ddZdS )"    )annotations)	Generator)Iterable)
NamedTuple)Protocol)MappingNode)Node)
ScalarNode)SequenceNodec                   @     e Zd ZdddZdS )	_Matchernr   returnGenerator[Node]c                 C  s   d S N selfr   r   r   K/home/ubuntu/.local/lib/python3.10/site-packages/pre_commit/yaml_rewrite.pymatch   s    z_Matcher.matchNr   r   r   r   __name__
__module____qualname__r   r   r   r   r   r          r   c                   @      e Zd ZU ded< d
ddZd	S )
MappingKeystrkr   r   r   r   c                 c  s6    t |tr|jD ]\}}|j| jkr|V  q	d S d S r   
isinstancer   valuer   )r   r   r   _r   r   r   r         
zMappingKey.matchNr   r   r   r   __annotations__r   r   r   r   r   r         
 r   c                   @  r   )MappingValuer   r   r   r   r   r   c                 c  s6    t |tr|jD ]\}}|j| jkr|V  q	d S d S r   r    )r   r   r   vr   r   r   r      r$   zMappingValue.matchNr   r%   r   r   r   r   r(      r'   r(   c                   @  r   )	SequenceItemr   r   r   r   c                 c  s     t |tr|jE d H  d S d S r   )r!   r
   r"   r   r   r   r   r   '   s   
zSequenceItem.matchNr   r   r   r   r   r   r*   &   r   r*   genIterable[Node]mr   c                   s    fdd| D S )Nc                 3  s$    | ]}  |D ]}|V  q	qd S r   )r   ).0srcr   r-   r   r   	<genexpr>-   s   " z_match.<locals>.<genexpr>r   )r+   r-   r   r0   r   _match,   s   r2   r   r   matchertuple[_Matcher, ...]Generator[ScalarNode]c                 C  s(   | f}|D ]}t ||}qdd |D S )Nc                 s  s    | ]
}t |tr|V  qd S r   )r!   r	   )r.   r   r   r   r   r1   4   s    zmatch.<locals>.<genexpr>)r2   )r   r3   r+   r-   r   r   r   r   0   s   r   N)r+   r,   r-   r   r   r,   )r   r   r3   r4   r   r5   )
__future__r   collections.abcr   r   typingr   r   
yaml.nodesr   r   r	   r
   r   r   r(   r*   r2   r   r   r   r   r   <module>   s    


