3
¥(ƒh¤  ã               @   sF   yd dl mZ W n  ek
r0   d dl mZ Y nX G dd„ deƒZdS )é    )Ú
MutableSetc               @   s€   e Zd ZdZdd„ Zdd„ ZejZej	Z
ejZejZejZejZdd„ Zdd	„ Zd
d„ Zdd„ Zdd„ Zdd„ Zedd„ ƒZdS )ÚSetMixinzA
    Mix-in for sets.  You must define __iter__, add, remove
    c             C   s   d}x| D ]}|d7 }q
W |S )Nr   é   © )ÚselfÚlengthÚitemr   r   ú5/tmp/pip-install-q3hcpn_q/lxml/lxml/html/_setmixin.pyÚ__len__   s    
zSetMixin.__len__c             C   s   x| D ]}||krdS qW dS )NTFr   )r   r   Zhas_itemr   r   r	   Ú__contains__   s    
zSetMixin.__contains__c             C   s   t | ƒS )N)Úset)r   r   r   r	   Úcopy!   s    zSetMixin.copyc             C   s   | |O } d S )Nr   )r   Úotherr   r   r	   Úupdate$   s    zSetMixin.updatec             C   s   | |M } d S )Nr   )r   r   r   r   r	   Úintersection_update'   s    zSetMixin.intersection_updatec             C   s   | |8 } d S )Nr   )r   r   r   r   r	   Údifference_update*   s    zSetMixin.difference_updatec             C   s   | |N } d S )Nr   )r   r   r   r   r	   Úsymmetric_difference_update-   s    z$SetMixin.symmetric_difference_updatec             C   s(   y| j |ƒ W n tk
r"   Y nX d S )N)ÚremoveÚKeyError)r   r   r   r   r	   Údiscard0   s    zSetMixin.discardc             C   s   t |ƒS )N)r   )ÚclsÚitr   r   r	   Ú_from_iterable6   s    zSetMixin._from_iterableN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   Ú__le__ÚissubsetÚ__ge__Ú
issupersetÚ__or__ÚunionÚ__and__ÚintersectionÚ__sub__Ú
differenceÚ__xor__Úsymmetric_differencer   r   r   r   r   r   Úclassmethodr   r   r   r   r	   r      s    r   N)Úcollections.abcr   ÚImportErrorr   r   r   r   r	   Ú<module>   s   