a
    Šxdû  ã                   @   s&   d dl Z eƒ eƒ fdd„Zdd„ ZdS )é    Nc                 C   s   | du r|S | du r|S | S )zH
    A hack to make True and 1 and False and 0 unique for ``uniq``.
    TF© )ÚelementÚtrueÚfalser   r   úH/var/www/html/Ranjet/env/lib/python3.9/site-packages/coreschema/utils.pyÚunbool   s
    r   c                 C   sÌ   z t tdd„ | D ƒƒƒt | ƒkW S  tyÆ   zJtdd„ | D ƒƒ}t |dd¡}t||ƒD ]\}}||krZ W Y dS qZW nH ttfyÀ   g }| D ](}t|ƒ}||v r° Y Y dS | 	|¡ q’Y n0 Y n0 dS )zØ
    Check if all of a container's elements are unique.
    Successively tries first to rely that the elements are hashable, then
    falls back on them being sortable, and finally falls back on brute
    force.
    c                 s   s   | ]}t |ƒV  qd S ©N©r   ©Ú.0Úir   r   r   Ú	<genexpr>0   ó    zuniq.<locals>.<genexpr>c                 s   s   | ]}t |ƒV  qd S r   r	   r
   r   r   r   r   3   r   é   NFT)
ÚlenÚsetÚ	TypeErrorÚsortedÚ	itertoolsÚisliceÚzipÚNotImplementedErrorr   Úappend)Ú	containerÚsortZslicedr   ÚjÚseenÚer   r   r   Úuniq'   s"     
r   )r   Úobjectr   r   r   r   r   r   Ú<module>   s   