o
    ýÑÐbÇ  ã                   @   st   d Z ddlm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ƒZ	dS )z2test detection of method which could be a functioné    )Úprint_functionc                   @   s(   e Zd ZdZdd„ Zdd„ Zdd„ ZdS )	ÚTotozbla bal ablc                 C   ó
   d| _ d S ©Né   ©Zaaa©Úself© r
   úa/var/www/secure340b-portal/env/lib/python3.10/site-packages/pylint/test/functional/no_self_use.pyÚ__init__	   ó   
zToto.__init__c                 C   s   |   ¡  dS )z4this method is a real method since it access to selfN)Úfunction_methodr   r
   r
   r   Úregular_method   ó   zToto.regular_methodc                 C   ó   t dƒ dS )z9this method isn' a real method since it doesn't need selfZhelloN©Úprintr   r
   r
   r   r      r   zToto.function_methodN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r
   r
   r
   r   r      s
    r   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚBasezan abstract classc                 C   r   r   r   r   r
   r
   r   r      r   zBase.__init__c                 C   s   t ‚)z+an abstract method, could not be a function)ÚNotImplementedError©r	   Úargr
   r
   r   Úcheck   s   z
Base.checkN)r   r   r   r   r   r   r
   r
   r
   r   r      s    r   c                   @   s   e Zd ZdZdd„ ZdS )ÚSubza concrete classc                 C   s   |dkS )z_a concrete method, could not be a function since it need
        polymorphism benefits
        r   r
   r   r
   r
   r   r   #   s   z	Sub.checkN)r   r   r   r   r   r
   r
   r
   r   r       s    r   c                   @   s   e Zd ZdZdZdd„ ZdS )ÚSuperzsame as before without abstracté   c                 C   s   t | jƒ dS )ZregularN)r   Úattrr   r
   r
   r   Úmethod,   s   zSuper.methodN)r   r   r   r   r    r!   r
   r
   r
   r   r   )   s    r   c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚSub1z"override method with need for selfc                 C   r   ©zno i can not be a functioné*   Nr   r   r
   r
   r   r!   2   r   zSub1.methodc                 C   r   r#   r   r   r
   r
   r   Ú__len__6   r   zSub1.__len__c                 C   r   r#   r   )r	   Úotherr
   r
   r   Ú__cmp__:   r   zSub1.__cmp__c                 C   ó   dS )Né   r
   r   r
   r
   r   Ú__copy__>   ó   zSub1.__copy__c                 C   r(   )Nr$   r
   r   r
   r
   r   Ú__getstate__A   r+   zSub1.__getstate__N)	r   r   r   r   r!   r%   r'   r*   r,   r
   r
   r
   r   r"   0   s    r"   c                   @   s   e Zd Zedd„ ƒZdS )ÚPropc                 C   r(   )z†Don't emit no-self-use for properties.

        They can't be functions and they can be part of an
        API specification.
        r$   r
   r   r
   r
   r   ÚcountG   s   z
Prop.countN)r   r   r   Úpropertyr.   r
   r
   r
   r   r-   E   s    r-   N)
r   Ú
__future__r   Úobjectr   r   r   r   r"   r-   r
   r
   r
   r   Ú<module>   s   	