o
    po™iŒ	  ã                   @   s2   d Z ddlmZ G dd„ dƒZdd„ Zdd„ Zd	S )
z¦Utilities for storing collections of error messages.

.. warning::

    This module is treated as private API.
    Users should not need to use this module directly.
é    )ÚSCHEMAc                   @   s"   e Zd Zdd„ Zedfdd„ZdS )Ú
ErrorStorec                 C   s
   i | _ d S ©N©Úerrors)Úself© r   úK/home/ubuntu/.local/lib/python3.10/site-packages/marshmallow/error_store.pyÚ__init__   s   
zErrorStore.__init__Nc                 C   sD   t |ƒ}|tkst|tƒs||i}|d ur||i}t| j|ƒ| _d S r   )Úcopy_containersr   Ú
isinstanceÚdictÚmerge_errorsr   )r   ÚmessagesÚ
field_nameÚindexr   r   r	   Ústore_error   s   zErrorStore.store_error)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r   r   r	   r      s    r   c                 C   s8   t | tƒrdd„ | D ƒS t | tƒrdd„ |  ¡ D ƒS | S )Nc                 S   s   g | ]}t |ƒ‘qS r   ©r   )Ú.0Úvalr   r   r	   Ú
<listcomp>   s    z#copy_containers.<locals>.<listcomp>c                 S   s   i | ]	\}}|t |ƒ“qS r   r   )r   Úkeyr   r   r   r	   Ú
<dictcomp>!   s    z#copy_containers.<locals>.<dictcomp>)r   Úlistr   Úitemsr   r   r   r	   r      s
   

r   c                 C   s  | s|S |s| S t | tƒr1t |tƒr|  |¡ | S t |tƒr*t| | t¡ƒ|t< |S |  |¡ | S t | tƒrdt |tƒrX| ¡ D ]\}}|| v rQt| | |ƒ| |< q?|| |< q?| S t|  t¡|ƒ| t< | S t |tƒrn| g|¢S t |tƒrt| | t¡ƒ|t< |S | |gS )z¬Deeply merge two error messages.

    The format of ``errors1`` and ``errors2`` matches the ``message``
    parameter of :exc:`marshmallow.exceptions.ValidationError`.
    )	r   r   Úextendr   r   Úgetr   Úappendr   )Úerrors1Úerrors2r   r   r   r   r	   r   %   s8   










r   N)Ú__doc__Úmarshmallow.exceptionsr   r   r   r   r   r   r   r	   Ú<module>   s
    