� c��j��J�ddlmZddlmZdgZGd�d�ZGd�d�Zy)���ref)� GenericAlias�WeakSetc��eZdZd�Zd�Zd�Zy)�_IterationGuardc�$�t|�|_y�N)r� weakcontainer)�selfr s �$/usr/lib64/python3.12/_weakrefset.py�__init__z_IterationGuard.__init__s�� ��/���c�`�|j�}|�|jj|�|Sr )r � _iterating�add)r �ws r � __enter__z_IterationGuard.__enter__s,�� � � � �� �=� �L�L� � �T� "�� rc��|j�}|�1|j}|j|�|s|j�yyyr )r r�remove�_commit_removals)r �e�t�br�ss r �__exit__z_IterationGuard.__exit__sB�� � � � �� �=�� � �A� �H�H�T�N���"�"�$�� rN)�__name__� __module__� __qualname__rrr�rr rr s�� 0�� %rrc���eZdZd!d�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z d �Z d �Z d �Z d �Zd�Zd�Zd�ZeZd�Zd�Zd�ZeZd�Zd�Zd�ZeZd�Zd�ZeZd�Zd�Zd�Z e Z!d�Z"d�Z#d�Z$e$Z%d�Z&d �Z'e(e)�Z*y)"rNc��t�|_t|�fd�}||_g|_t�|_|�|j |�yy)Nc��|�}|�D|jr|jj|�y|jj |�yyr )r�_pending_removals�append�data�discard)�item�selfrefr s r �_removez!WeakSet.__init__.._remove'sA���9�D����?�?��*�*�1�1�$�7��I�I�%�%�d�+�  r)�setr&rr*r$r�update)r r&r*s r rzWeakSet.__init__%sH���E�� �"%�d�)� ,��� �!#����%��� � � �K�K�� � rc��|jj}|jj} |�}||��#t$rYywxYwr )r$�popr&r'� IndexError)r r.r'r(s r rzWeakSet._commit_removals5sS���$�$�(�(���)�)�#�#��� ��u�� �D�M� ��� �� �s�?� A � A c#�K�t|�5|jD]}|�}|�� |��� ddd�y#1swYyxYw�wr )rr&�r �itemrefr(s r �__iter__zWeakSet.__iter__?s;���� �T� "��9�9���y���#��J� %�#� "� "�s� A�8�8� A�A�Ac�X�t|j�t|j�z Sr )�lenr&r$�r s r �__len__zWeakSet.__len__Hs ���4�9�9�~��D�$:�$:� ;�;�;rc�T� t|�}||jvS#t$rYywxYw)NF)r� TypeErrorr&)r r(�wrs r � __contains__zWeakSet.__contains__Ks4�� ��T��B��T�Y�Y����� �� �s � � '�'c�P�|jt|�f|j�fSr )� __class__�list� __getstate__r6s r � __reduce__zWeakSet.__reduce__Rs"���~�~��T� �}�d�.?�.?�.A�A�Arc��|jr|j�|jjt ||j ��yr )r$rr&rrr*�r r(s r rz WeakSet.addUs2�� � !� !� � !� !� #� � � � � �c�$�� � �-�.rc�p�|jr|j�|jj�yr )r$rr&�clearr6s r rDz WeakSet.clearZs%�� � !� !� � !� !� #� � � ���rc�$�|j|�Sr �r=r6s r �copyz WeakSet.copy_s���~�~�d�#�#rc��|jr|j� |jj�}|�}|�|S�'#t$r t d�d�wxYw)Nzpop from empty WeakSet)r$rr&r.�KeyErrorr1s r r.z WeakSet.popbsi�� � !� !� � !� !� #�� C��)�)�-�-�/���9�D���� ���� C��7�8�d�B� C�s �A�Ac��|jr|j�|jjt |��yr )r$rr&rrrBs r rzWeakSet.removens-�� � !� !� � !� !� #� � � ����T��#rc��|jr|j�|jjt |��yr )r$rr&r'rrBs r r'zWeakSet.discardss-�� � !� !� � !� !� #� � � ���#�d�)�$rc�l�|jr|j�|D]}|j|��yr )r$rr)r �other�elements r r,zWeakSet.updatexs-�� � !� !� � !� !� #��G� �H�H�W� �rc�(�|j|�|Sr )r,�r rMs r �__ior__zWeakSet.__ior__~s�� � � �E��� rc�H�|j�}|j|�|Sr )rG�difference_update�r rM�newsets r � differencezWeakSet.difference�s �������� � ��'�� rc�&�|j|�yr )�__isub__rPs r rSzWeakSet.difference_update���� � � �e�rc���|jr|j�||ur|jj�|S|jj d�|D��|S)Nc3�2K�|]}t|����y�wr r��.0r(s r � z#WeakSet.__isub__..�s����'D�e�d��D� �e���)r$rr&rDrSrPs r rXzWeakSet.__isub__�sR�� � !� !� � !� !� #� �5�=� �I�I�O�O� �� � �I�I� '� '�'D�e�'D� D�� rc�8���j�fd�|D��S)Nc3�,�K�|] }|�vs�|��� y�wr r �r]r(r s �r r^z'WeakSet.intersection..�s�����E�u�t��� �d�u�s� �rFrPs` r � intersectionzWeakSet.intersection�s����~�~�E�u�E�E�Erc�&�|j|�yr )�__iand__rPs r �intersection_updatezWeakSet.intersection_update�rYrc��|jr|j�|jjd�|D��|S)Nc3�2K�|]}t|����y�wr rr\s r r^z#WeakSet.__iand__..�s����%B�E�D�c�$�i�E�r_)r$rr&rfrPs r rezWeakSet.__iand__�s4�� � !� !� � !� !� #� � � �%�%�%B�E�%B�B�� rc�F�|jjd�|D��S)Nc3�2K�|]}t|����y�wr rr\s r r^z#WeakSet.issubset..�s����!>���#�d�)��r_)r&�issubsetrPs r rkzWeakSet.issubset�s���y�y�!�!�!>��!>�>�>rc�N�|jttt|��kSr �r&r+�maprrPs r �__lt__zWeakSet.__lt__�����y�y�3�s�3���/�/�/rc�F�|jjd�|D��S)Nc3�2K�|]}t|����y�wr rr\s r r^z%WeakSet.issuperset..�s����#@�%�$�C��I�%�r_)r&� issupersetrPs r rszWeakSet.issuperset�s���y�y�#�#�#@�%�#@�@�@rc�N�|jttt|��kDSr rmrPs r �__gt__zWeakSet.__gt__�rprc��t||j�stS|jt t t |��k(Sr )� isinstancer=�NotImplementedr&r+rnrrPs r �__eq__zWeakSet.__eq__�s0���%����0�!� !��y�y�C��C���0�0�0rc�H�|j�}|j|�|Sr )rG�symmetric_difference_updaterTs r �symmetric_differencezWeakSet.symmetric_difference�s ��������*�*�5�1�� rc�&�|j|�yr )�__ixor__rPs r r{z#WeakSet.symmetric_difference_update�rYrc�����jr�j��|ur�jj��S�jj �fd�|D���S)Nc3�J�K�|]}t|�j����y�wr )rr*rbs �r r^z#WeakSet.__ixor__..�s�����1\�V[�d�#�d�D�L�L�2I�V[�s� #)r$rr&rDr{rPs` r r~zWeakSet.__ixor__�sT��� � !� !� � !� !� #� �5�=� �I�I�O�O� �� � �I�I� 1� 1�1\�V[�1\� \�� rc�6�|jd�||fD��S)Nc3�.K�|] }|D]}|����y�wr r )r]rrs r r^z WeakSet.union..�s����B��A��1�a��a��s�rFrPs r �unionz WeakSet.union�s���~�~�B�$���B�B�Brc�<�t|j|��dk(S)Nr)r5rcrPs r � isdisjointzWeakSet.isdisjoint�s���4�$�$�U�+�,��1�1rc�,�t|j�Sr )�reprr&r6s r �__repr__zWeakSet.__repr__�s���D�I�I��rr )+rrrrrr3r7r;r@rrDrGr.rr'r,rQrV�__sub__rSrXrc�__and__rfrerk�__le__rors�__ge__ruryr|�__xor__r{r~r��__or__r�r�� classmethodr�__class_getitem__r rr rr$s���� ��<��B�/� � $� �$� %� � ���G���F��G��� ?� �F�0�A� �F�0�1� �#�G���C� �F�2��$�L�1�rN)�_weakrefr�typesr�__all__rrr rr �r�s*�� �� �+��%�%�2i2�i2r