o
    ÌÉh  ã                   @   s    d dl mZ dd„ Zdd„ ZdS )é    )ÚMappingc                 C   sL   |  ¡ D ]\}}t|tƒr|rt|  |i ¡|ƒ}|| |< q|| | |< q| S )zTUpdate a nested dictionary or similar mapping.

    Modify ``source`` in place.
    )ÚitemsÚ
isinstancer   Údeep_updateÚget)ÚsourceÚ	overridesÚkeyÚvalueÚreturned© r   úS/var/www/html/ndineBlogger/venv/lib/python3.10/site-packages/wagtail/utils/utils.pyr      s   
r   c                 C   sŒ   i }t | tƒr|  ¡ n| }|D ]4\}}t |ttfƒr(|D ]
\}}||t|ƒ< qqt |tƒr=| ¡ D ]
\}}||t|ƒ< q1q||t|ƒ< q|S )a9  
    Convert potentially grouped choices into a flat dict of choices.

    flatten_choices([(1, '1st'), (2, '2nd')]) -> {1: '1st', 2: '2nd'}
    flatten_choices([('Group', [(1, '1st'), (2, '2nd')])]) -> {1: '1st', 2: '2nd'}
    flatten_choices({'Group': {'1': '1st', '2': '2nd'}}) -> {'1': '1st', '2': '2nd'}
    )r   Údictr   ÚlistÚtupleÚstr)ÚchoicesÚretÚ	to_unpackr	   r
   Úsub_keyÚ	sub_valuer   r   r   Úflatten_choices   s   ÿ
ÿr   N)Úcollections.abcr   r   r   r   r   r   r   Ú<module>   s    