a
    8¤Xhø  ã                   @  sb   d dl mZ d dlmZ d dlmZmZ d dlmZ G dd„ deƒZ	G dd„ de
ƒZdd
d„ZdS )é    )Úannotations)ÚUserList)ÚOptionalÚUnion)ÚQueryc                   @  s    e Zd ZdZdZdZdd„ ZdS )Ú_FakeSqlValFc                 C  s   d  tt| ƒ¡S )Nú,)ÚjoinÚmapÚstr)Úself© r   ú[/var/www/viveiro_mudafortebrasil/venv/lib/python3.9/site-packages/multiselectfield/utils.pyÚ__str__   s    z_FakeSqlVal.__str__N)Ú__name__Ú
__module__Ú__qualname__Zcontains_aggregateZcontains_column_referencesZcontains_over_clauser   r   r   r   r   r      s   r   c                      s>   e Zd Z‡ fdd„Zdd„ Zddd	d
d	d	ddœdd„Z‡  ZS )ÚMSFListc                   s    || _ tt| ƒj|i |¤Ž d S ©N)ÚchoicesÚsuperr   Ú__init__)r   r   ÚargsÚkwargs©Ú	__class__r   r   r   %   s    zMSFList.__init__c                   s&   ‡ fdd„ˆ D ƒ}d  dd„ |D ƒ¡S )Nc                   s0   g | ](}|  ¡ r ˆ j t|ƒ¡n
ˆ j |¡‘qS r   )Úisdigitr   ÚgetÚint)Ú.0Úi©Úmsglr   r   Ú
<listcomp>*   s   ÿz#MSFList.__str__.<locals>.<listcomp>z, c                 s  s   | ]}t |ƒV  qd S r   ©r   )r   Úsr   r   r   Ú	<genexpr>-   ó    z"MSFList.__str__.<locals>.<genexpr>)r	   )r"   Zmsg_listr   r!   r   r   )   s    
þzMSFList.__str__NTFr   ÚboolzOptional[bool]zUnion[list, _FakeSqlVal])ÚqueryÚallow_joinsÚreuseÚ	summarizeÚfor_saveÚreturnc                 C  s   |rt | ƒ}nt| ƒ}|S r   )r   Úlist)r   r)   r*   r+   r,   r-   Úresultr   r   r   Úresolve_expression/   s    
zMSFList.resolve_expression)NTNFF)r   r   r   r   r   r1   Ú__classcell__r   r   r   r   r   #   s      ýr   éÈ   c                 C  s,   |d u r(| r$t d dd„ | D ƒ¡ƒS |S |S )Nr   c                 S  s   g | ]\}}t |ƒ‘qS r   r$   )r   ÚkeyÚlabelr   r   r   r#   =   r'   z"get_max_length.<locals>.<listcomp>)Úlenr	   )r   Ú
max_lengthÚdefaultr   r   r   Úget_max_length:   s
    r9   N)r3   )Ú
__future__r   Úcollectionsr   Útypingr   r   Zdjango.db.models.sql.queryr   r   r/   r   r9   r   r   r   r   Ú<module>   s   
