o
    wvXjË  ã                   @   s@   d Z ddlmZmZ G dd„ deƒZdd„ ZG dd„ deƒZd	S )
zCustom maps, sequences, etc.é    )Úabsolute_importÚunicode_literalsc                   @   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
   úT/var/www/html/myproject/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                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚEqualityDictz&Dict using the eq operator for keying.c                 C   s&   t |ƒ}|| vr|  |¡S t | |¡S r   )r   Ú__missing__ÚdictÚ__getitem__)r   ÚkeyÚhr
   r
   r   r   !   s   
zEqualityDict.__getitem__c                 C   s   t  | t|ƒ|¡S r   )r   Ú__setitem__r   )r   r   Úvaluer
   r
   r   r   '   s   zEqualityDict.__setitem__c                 C   s   t  | t|ƒ¡S r   )r   Ú__delitem__r   )r   r   r
   r
   r   r   *   s   zEqualityDict.__delitem__N)r   r   r   r   r   r   r   r
   r
   r
   r   r      s
    r   N)	r   Ú
__future__r   r   Úlistr   r   r   r   r
   r
   r
   r   Ú<module>   s
    