Current File : //proc/self/root/usr/lib/python3/dist-packages/cloudinit/__pycache__/safeyaml.cpython-312.pyc |
�
Nhm( � � � d dl Z d dlmZ d dlmZ d dlmZmZmZm Z d dl
Z
d dlmZ e j e� Z G d� d� Zd� Zd ee fd
�Zdedee d
ee fd�Z G d� de
j( � Z G d� de
j, j. � Z ej2 d� d
e eeeef f fd�� Z ej2 d� dd�� Zy)� N)�defaultdict)�chain)�Any�Dict�List�Tuple)�performancec �T � e Zd Zdedej
dej
fd�Zd� Zd� Zy)�SchemaPathMarks�path�
start_mark�end_markc �. � || _ || _ || _ y �N)r r
r )�selfr r
r s �4/usr/lib/python3/dist-packages/cloudinit/safeyaml.py�__init__zSchemaPathMarks.__init__ s � ��� �$��� ��
� c �& � |j j | j j k s-|j j | j j kD ry|j j | j j k( r.|j j | j j k ry|j j | j j k( r.|j j | j j kD ryy)z;Return whether other start/end marks are within self marks.FT)r
�liner �column�r �others r �__contains__zSchemaPathMarks.__contains__ s� � �
���!�!�D�O�O�$8�$8�8��~�~�"�"�T�]�]�%7�%7�7�����!�!�T�_�_�%9�%9�9�� � �'�'�$�/�/�*@�*@�@���N�N���4�=�=�#5�#5�5����%�%��
�
�(<�(<�<��r c �v � | j j |j j k( xr� | j j |j j k( xr\ | j j |j j k( xr- | j j |j j k( S r )r
r r r r s r �__eq__zSchemaPathMarks.__eq__/ s� � ��O�O� � �E�$4�$4�$9�$9�9�
>����&�&�%�*:�*:�*A�*A�A�
>��
�
�"�"�e�n�n�&9�&9�9�
>� �
�
�$�$����(=�(=�=�
r N) �__name__�
__module__�__qualname__�str�yaml�Markr r r � r r r r s. � �!�S� !�d�i�i� !�4�9�9� !�
�&
r r c �: � |d d d� D ] }| |v s�| |k( r�|c S y )N���r# )�
child_mark�marks�marks r �_find_closest_parentr) 8 s2 � ��d��d�� �����j�D�&8��K�� r �
line_marksc �D � | D ]� }t || � }|s�|j j dd� \ }}|j |j k( s&|j j |j � r�p|j j ||j d� |_ �� y)zP
Update any SchemaPathMarks.path for items not under the proper parent.
�.� N)r) r �rsplit�
startswith�replace)r* r( �parent�path_prefix� _path_idxs r �_reparent_schema_mark_childrenr4 ? s� � � � K��%�d�J�7���%)�Y�Y�%5�%5�c�1�%=�"�K���y�y�F�K�K�'�t�y�y�/C�/C����0� !�I�I�-�-�k�6�;�;��J�� �Kr �new_markr'