o
    b                     @   s~  d Z ddlZddlZddlmZ G dd deejdZG dd deejdZG d	d
 d
eejdZ	G dd deejdZ
G dd deejdZG dd deZG dd deejdZG dd deZG dd deZG dd deZG dd deZG dd deZG dd deeeeZG dd  d eeeZG d!d" d"ejdZG d#d$ d$eZd%d& Z	 G d(d) d)eejdZd+d, ZdS )-zgCheck that instantiating a class with
`abc.ABCMeta` as metaclass fails if it defines
abstract methods.
    N)Balac                   @      e Zd ZdS )	GoodClassN__name__
__module____qualname__ r	   r	   u/var/www/secure340b-portal/env/lib/python3.10/site-packages/pylint/test/functional/abstract_class_instantiated_py3.pyr          r   )	metaclassc                   @      e Zd Zdd ZdS )SecondGoodClassc                 C      dS z do nothing. Nr	   selfr	   r	   r
   test       zSecondGoodClass.testNr   r   r   r   r	   r	   r	   r
   r          r   c                   @   s   e Zd ZdZdd ZdS )ThirdGoodClassz$ This should not raise the warning. c                 C   s   t  N)NotImplementedErrorr   r	   r	   r
   r      s   zThirdGoodClass.testN)r   r   r   __doc__r   r	   r	   r	   r
   r      s    r   c                   @      e Zd Zejdd ZdS )BadClassc                 C   r   r   r	   r   r	   r	   r
   r      r   zBadClass.testNr   r   r   abcabstractmethodr   r	   r	   r	   r
   r      s    r   c                   @   s   e Zd Zeejdd ZdS )SecondBadClassc                 C   r   r   r	   r   r	   r	   r
   r       r   zSecondBadClass.testN)r   r   r   propertyr   r   r   r	   r	   r	   r
   r       s    r    c                   @   r   )ThirdBadClassNr   r	   r	   r	   r
   r"   %   r   r"   c                   @   sD   e Zd Zejdd Zejdd Zejdd Zejdd Zd	S )
	Structurec                 C      d S r   r	   r   r	   r	   r
   __iter__*      zStructure.__iter__c                 C   r$   r   r	   r   r	   r	   r
   __len__-   r&   zStructure.__len__c                 C   r$   r   r	   r   _r	   r	   r
   __contains__0   r&   zStructure.__contains__c                 C   r$   r   r	   r   r	   r	   r
   __hash__3   r&   zStructure.__hash__N)	r   r   r   r   r   r%   r'   r*   r+   r	   r	   r	   r
   r#   )   s    


r#   c                   @   r   )	Containerc                 C   r$   r   r	   r(   r	   r	   r
   r*   8      zContainer.__contains__N)r   r   r   r*   r	   r	   r	   r
   r,   7   r   r,   c                   @   r   )Sizablec                 C   r$   r   r	   r   r	   r	   r
   r'   <   r-   zSizable.__len__N)r   r   r   r'   r	   r	   r	   r
   r.   ;   r   r.   c                   @   s   e Zd ZdZdS )Hashable*   N)r   r   r   r+   r	   r	   r	   r
   r/   ?   s    r/   c                   @   s   e Zd Zdd ZeZdS )Iteratorc                 C   s   t g dS )N)         )iterr   r	   r	   r
   keysD   s   zIterator.keysN)r   r   r   r6   r%   r	   r	   r	   r
   r1   C   s    r1   c                   @   s   e Zd Zejdd ZeZdS )AbstractSizablec                 C   r$   r   r	   r   r	   r	   r
   lengthJ   r&   zAbstractSizable.lengthN)r   r   r   r   r   r8   r'   r	   r	   r	   r
   r7   I   s    
r7   c                   @   r   )NoMroAbstractMethodsNr   r	   r	   r	   r
   r9   O   r   r9   c                   @   r   )BadMroAbstractMethodsNr   r	   r	   r	   r
   r:   R   r   r:   c                   @   r   )SomeMetaclassc                 C   r$   r   r	   r   r	   r	   r
   propW   r&   zSomeMetaclass.propN)r   r   r   r   r   r<   r	   r	   r	   r
   r;   U       r;   c                   @   s   e Zd ZdZeZdS )FourthGoodClasszZDon't consider this abstract if some attributes are
    there, but can't be inferred.
    N)r   r   r   r   r   r<   r	   r	   r	   r
   r>   [   s    r>   c                   C   sJ   t   t  t  t  t  t  t  t  t	  t
  t  dS )z do nothing N)r   r   r   r>   weakrefWeakKeyDictionaryWeakValueDictionaryr9   r:   r   r    r"   r	   r	   r	   r
   mainb   s   
rB   r2   c                   @   r   )FourthBadClassc                 C   r$   r   r	   r   r	   r	   r
   r   u   r-   FourthBadClass.testNr   r	   r	   r	   r
   rC   s   s    rC   c                   @   r   )rC   c                 C   r$   r   r	   r   r	   r	   r
   r   z   r&   rD   Nr   r	   r	   r	   r
   rC   x   r=   c                   C   s
   t   d S r   )rC   r	   r	   r	   r
   main2   s   
rE   )r   r   r?   Zlalar   objectABCMetar   r   r   r   r    r"   r#   r,   r.   r/   r1   r7   r9   r:   r;   r>   rB   rC   rE   r	   r	   r	   r
   <module>   s0    