
    Evg3                         d dl mZmZmZmZ d dlmZmZmZ d dl	m
Z
 g dZ G d d          Z G d de          Z G d	 d
e          Zd Zd ddZdS )    )CallableIterableIteratorMapping)isliceteezip_longest)Promise)BaseChoiceIteratorBlankChoiceIteratorCallableChoiceIteratorflatten_choicesnormalize_choicesc                   .     e Zd ZdZ fdZd Zd Z xZS )r   z*Base class for lazy iterators for choices.c           	          t          |t                    r5t          d t          | |t	                                D                       S t                                          |          S )Nc              3   (   K   | ]\  }}||k    V  d S N ).0abs      Q/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/utils/choices.py	<genexpr>z,BaseChoiceIterator.__eq__.<locals>.<genexpr>   s*      WW$!QqAvWWWWWW    )	fillvalue)
isinstancer   allr	   objectsuper__eq__)selfother	__class__s     r   r    zBaseChoiceIterator.__eq__   s\    eX&& 	XWW+dEVXX*V*V*VWWWWWWww~~e$$$r   c                     |dk     rt          |           |         S 	 t          t          | ||dz                       S # t          $ r t	          d          d w xY w)Nr      zindex out of range)listnextr   StopIteration
IndexError)r!   indexs     r   __getitem__zBaseChoiceIterator.__getitem__   sk    199::e$$	=tUEAI66777 	= 	= 	=122<	=s	    > Ac                      t          d          )Nz8BaseChoiceIterator subclasses must implement __iter__().)NotImplementedErrorr!   s    r   __iter__zBaseChoiceIterator.__iter__    s    !F
 
 	
r   )__name__
__module____qualname____doc__r    r+   r/   __classcell__)r#   s   @r   r   r      s\        44% % % % %
= = =
 
 
 
 
 
 
r   r   c                       e Zd ZdZd Zd ZdS )r   z)Iterator to lazily inject a blank choice.c                 "    || _         || _        d S r   )choicesblank_choice)r!   r7   r8   s      r   __init__zBlankChoiceIterator.__init__)   s    (r   c              #      K   t          | j                  \  }}t          d t          |          D                       s| j        E d {V  |E d {V  d S )Nc              3   $   K   | ]\  }}|d v V  dS )) NNr   )r   value_s      r   r   z/BlankChoiceIterator.__iter__.<locals>.<genexpr>/   s+      NN85!5J&NNNNNNr   )r   r7   anyr   r8   )r!   r7   r"   s      r   r/   zBlankChoiceIterator.__iter__-   sy      T\**NNu7M7MNNNNN 	)((((((((r   Nr0   r1   r2   r3   r9   r/   r   r   r   r   r   &   s8        33) ) )    r   r   c                       e Zd ZdZd Zd ZdS )r   z=Iterator to lazily normalize choices generated by a callable.c                     || _         d S r   )func)r!   rC   s     r   r9   zCallableChoiceIterator.__init__7   s    			r   c              #   X   K   t          |                                           E d {V  d S r   )r   rC   r.   s    r   r/   zCallableChoiceIterator.__iter__:   s4      $TYY[[11111111111r   Nr@   r   r   r   r   r   4   s8        GG  2 2 2 2 2r   r   c              #   t   K   | pdD ]0\  }}t          |t          t          f          r	|E d{V  *||fV  1dS )z*Flatten choices by removing nested values.r   N)r   r&   tuple)r7   value_or_grouplabel_or_nesteds      r   r   r   >   sm      +2=b 2 2'oe}55 	2&&&&&&&&& /11111	2 2r   depthc                r   ddl m} | xxt          d x\   n0 xt          d x\   n! xt          d x\   n xt
          d x\   n  n  | S x|d x
\    | j        S  xt          d x\   dk     r |                                 } n xt          d x
\   dk     r nu xt          d x#\   dk     rt          d | D                       s nF xt          d x\   dk    r t          |           S  t          d x\   dk     r |             } n 	 | S 	 fd| D             S # t          t          f$ r | cY S w xY w)z=Normalize choices values consistently for fields and widgets.r   )ChoicesTyper   N   c              3   Z   K   | ]&}t          |t          t          t          f          V  'd S r   )r   r
   bytesstr)r   xs     r   r   z$normalize_choices.<locals>.<genexpr>]   sD       1
 1
56Jq7E3/001
 1
 1
 1
 1
 1
r   c                 B    g | ]\  }}|t          |d z             fS )r%   rI   )r   )r   kvrJ   s      r   
<listcomp>z%normalize_choices.<locals>.<listcomp>m   s4    MMMtq!%auqy999:MMMr   )django.db.models.enumsrL   r   r
   rO   rP   r7   r   itemsr   r   r?   r   r   	TypeError
ValueError)r=   rJ   rL   s    ` r   r   r   G   s    322222
?!!!!!!!!IGIIIIIII%#%%%%%%%%%%% L[]]]]]]=   WYYYYY%!)))KKMME! XZZZZZ51999
   XZZZZZ5199S 1
 1
:?1
 1
 1
 .
 .
99
   XZZZZZ5A:::)%000  ZZZZZ5199EGGEO LMMMMuMMMMz"   
 s   D   D65D6N)collections.abcr   r   r   r   	itertoolsr   r   r	   django.utils.functionalr
   __all__r   r   r   r   r   r   r   r   <module>r^      s   A A A A A A A A A A A A . . . . . . . . . . + + + + + +  
 
 
 
 
 
 
 
.    ,   2 2 2 2 2/ 2 2 22 2 2 '( , , , , , , ,r   