�
c��j- � �, � d dl mZ d� Z G d� de� Zy)� )�WeakSetc �$ � t j S �N)�ABCMeta�_abc_invalidation_counter� � � /usr/lib64/python3.12/_py_abc.py�get_cache_tokenr s � �� �,�,�,r c �J � � e Zd Z dZ� fd�Zd� Zd d�Zd� Zd� Zd� Z d� Z
� xZS )
r r c �� �� t � | � | |||fi |��}|j � D ��ch c] \ }}t |dd� r|�� }}}|D ]H }t |dt � � D ]. }t ||d � }t |dd� s�|j |� �0 �J t
|� |_ t � |_ t � |_
t � |_ t j |_ |S c c}}w )N�__isabstractmethod__F�__abstractmethods__)�super�__new__�items�getattr�set�add� frozensetr r �
_abc_registry�
_abc_cache�_abc_negative_cacher r �_abc_negative_cache_version)
�mcls�name�bases� namespace�kwargs�cls�value� abstracts�base� __class__s
�r
r zABCMeta.__new__# s� �� ��g�o�d�D�%��E�f�E�� )2���(9�G�(9���u���'=�u�E� �(9� � G� �D���&;�S�U�C����T�4�0���5�"8�%�@��M�M�$�'� D� �
#,�I�"6���#�I��� ����")�)���*1�*K�*K��'��
��Gs �C%c �� � t |t � st d� �t || � r|S t | |� rt d� �| j
j
|� t xj dz
c_ |S )NzCan only register classesz'Refusing to create an inheritance cycle� ) �
isinstance�type� TypeError�
issubclass�RuntimeErrorr r r r )r �subclasss r
�registerzABCMeta.register6 sp � � � �(�D�)��7�8�8��h��$��O� �c�8�$��H�I�I������h�'��)�)�Q�.�)��r c �< � t d| j � d| j � �|�� t dt � � �|�� | j D ]M }|j d� s�t
| |� }t |t � rt |� }t |� d|��|�� �O y )NzClass: �.)�filezInv. counter: �_abc_z: )
�print�
__module__�__qualname__r �__dict__�
startswithr r' r r )r r0 r r! s r
�_dump_registryzABCMeta._dump_registryH s� � �5�
�����'�q��)9�)9�(:�;�$�G�
���0�1�2��>��L�L�D����w�'���T�*���e�W�-���J�E����b�� �*��6� !r c �: � | j j � y r )r �clear�r s r
�_abc_registry_clearzABCMeta._abc_registry_clearS s � �<������!r c �n � | j j � | j j � y r )r r9 r r: s r
�_abc_caches_clearzABCMeta._abc_caches_clearW s' � �:����������%�%�'r c � � � |j }|� j v ryt |� }||u r=� j t j
k( r|� j v ry� j |� S t � fd�||fD � � S )NTFc 3 �@ �K � | ] }�j |� �� � y �wr )�__subclasscheck__)�.0�cr s �r
�