o
    ¨D®f®  ã                   @  s<   d Z ddlmZ G dd„ deƒZdd„ ZG dd„ deƒZd	S )
zCustom maps, sequences, etc.é    )Úannotationsc                   @  s$   e Zd ZdZdZdd„ Zdd„ ZdS )Ú	HashedSeqzjHashed Sequence.

    Type used for hash() to make sure the hash is not generated
    multiple times.
    Ú	hashvaluec                 G  s   || d d …< t |ƒ| _d S ©N)Úhashr   )ÚselfÚseq© r	   úP/home/ubuntu/webapp/venv/lib/python3.10/site-packages/kombu/utils/collections.pyÚ__init__   s   zHashedSeq.__init__c                 C  s   | j S r   )r   )r   r	   r	   r
   Ú__hash__   s   zHashedSeq.__hash__N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r   r   r	   r	   r	   r
   r      s
    r   c                 C  s&   z|   ¡ W S  ty   t| ƒ Y S w )zCall ``obj.__eqhash__``.)Ú
__eqhash__ÚAttributeErrorr   )Úor	   r	   r
   Úeqhash   s
   
ÿr   c                      s8   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡ fdd„Z‡  ZS )ÚEqualityDictz&Dict using the eq operator for keying.c                   s&   t |ƒ}|| vr|  |¡S tƒ  |¡S r   )r   Ú__missing__ÚsuperÚ__getitem__)r   ÚkeyÚh©Ú	__class__r	   r
   r   #   s   
zEqualityDict.__getitem__c                   s   t ƒ  t|ƒ|¡S r   )r   Ú__setitem__r   )r   r   Úvaluer   r	   r
   r   )   s   zEqualityDict.__setitem__c                   s   t ƒ  t|ƒ¡S r   )r   Ú__delitem__r   )r   r   r   r	   r
   r    ,   s   zEqualityDict.__delitem__)r   r   r   r   r   r   r    Ú__classcell__r	   r	   r   r
   r       s
    r   N)r   Ú
__future__r   Úlistr   r   Údictr   r	   r	   r	   r
   Ú<module>   s
    