o
    b                     @   s  d dl mZ d dl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e	ej
 e	ej
 e	e j  e	e   e	e   e	e   ze   W n	 eyi   Y nw ze   W n	 eyz   Y nw ze  W n ey   e  Y nw ze  W n ey   ze  W n	 ey   Y nw Y nw z	ere   W n	 ey   Y nw ze   W n ey   ze  W n	 ey   Y nw Y nw G dd deeZee j ei j edj dd Zdd ZG dd deZ G dd deZ!G dd deZ"e#e"G dd deZ$e$j% G dd deZ&e& '  d dl(Z(G dd de(j)Z*e*j+Z,dS )     )print_functionNc                   @   s,   e Zd ZdZdZdd Zdd Zdd Zd	S )
Providerz"provide some attributes and method   c                 C   
   d| _ d S )Nr   attrself r
   c/var/www/secure340b-portal/env/lib/python3.10/site-packages/pylint/test/functional/member_checks.py__init__      
zProvider.__init__c                 C   s
   | j | S )zimpressive methodr   )r	   valr
   r
   r   method
      
zProvider.methodc                 C   s   t d|  dS )z
hop methodzhop hop hopN)printr   r
   r
   r   hophop   s   zProvider.hophopN)__name__
__module____qualname____doc__cattrr   r   r   r
   r
   r
   r   r      s    r   c                       sP   e Zd ZdZdd Zdd Zdd Zdd	 Zd
d Zdd Z	 fddZ
  ZS )Clientzuse provider classc                 C   s"   t  | _t j| _t j| _d| _d S )Nr   )r   _provr   Z
_prov_attrZ
cattributeZ_prov_attr2	set_laterr   r
   r
   r   r      s   
zClient.__init__c                 C   s
   || _ dS )z:set set_later attribute (introduce an inference ambiguity)N)r   )r	   valuer
   r
   r   set_set_later   r   zClient.set_set_laterc                 C   s   | j   | j   dS )zuse provider's methodN)r   r   Z	hophophopr   r
   r
   r   
use_method   s   
zClient.use_methodc                 C   s   t | jj t | jj dS )zuse provider's attrN)r   r   r   	attributer   r
   r
   r   use_attr$   s   zClient.use_attrc                 C   s.   t | jj t | j t | j t | j dS )zprint debug informationN)r   	__class__r   r   __dict__r   r   r
   r
   r   debug)   s   

zClient.debugc                 C   sL   g }| |  i }||  d}||  d}t|  d}t|j dS )z1test access to unexistant member of builtin typesr
   Ztoto   N)Zapppendsetappendr   Zloowerwhatever)r	   ZlisZdictupstringintegerr
   r
   r   test_bt_types0   s   


zClient.test_bt_typesc                    s    d }t |j tt|   d S N)r   r&   superr   Zmisssing)r	   noner    r
   r   test_no_false_positives=   s   
zClient.test_no_false_positives)r   r   r   r   r   r   r   r   r"   r*   r/   __classcell__r
   r
   r.   r   r      s    r   c                   @      e Zd ZdZdS )Mixinz*No no-member should be emitted for mixins.N)r   r   r   r   r
   r
   r
   r   r2   D       r2   c                   @      e Zd ZdZdd ZdS )Getattrz?no-member shouldn't be emitted for classes with dunder getattr.c                 C   s
   | j | S r+   )r!   r	   r   r
   r
   r   __getattr__J   r   zGetattr.__getattr__N)r   r   r   r   r7   r
   r
   r
   r   r5   G       r5   c                   @   r4   )GetattributezDno-member shouldn't be emitted for classes with dunder getattribute.c                 C   s   dS )N*   r
   r6   r
   r
   r   __getattribute__Q      zGetattribute.__getattribute__N)r   r   r   r   r;   r
   r
   r
   r   r9   N   r8   r9   c                       s    e Zd ZdZ fddZ  ZS )SuperChecksz#Don't fail when the MRO is invalid.c                    s   t t|   d S r+   )r,   r=   Zlalalar   r.   r
   r   test      zSuperChecks.test)r   r   r   r   r>   r0   r
   r
   r.   r   r=      s    r=    c                  C   s.   ddl } |  | j| j}|d |  dS )zTest a regression
    Version used:

    - Pylint 0.10.0
    - Logilab common 0.15.0
    - Logilab astroid 0.15.1

    False E1101 positive, line 23:
    Instance of '_socketobject' has no 'connect' member
    r   N)z	127.0.0.1P   )socketAF_INETSOCK_STREAMconnectclose)rB   Zscktr
   r
   r   socket_false_positive   s   
rG   c                 C   s$   | rd}nd}t |tr|S | S )z-should not raise E1101 on something.conjugateg      ?y              ?)
isinstancefloat	conjugate)Z
magic_flagZ	somethingr
   r
   r   no_conjugate_member   s   
rK   c                   @   r4   )NoDunderNameInInstancez8Emit a warning when accessing __name__ from an instance.c                 C   s   | j | _d S r+   )r   varr   r
   r
   r   r      s   zNoDunderNameInInstance.__init__N)r   r   r   r   r   r
   r
   r
   r   rL          rL   c                   @   r4   )InvalidAccessBySlots)ac                 C   s   | j }d| _ d S )N   )Zteta)r	   rM   r
   r
   r   r      s   
zInvalidAccessBySlots.__init__N)r   r   r   	__slots__r   r
   r
   r
   r   rO      rN   rO   c                   @   s   e Zd Zdd ZdS )MetaWithDynamicGetattrc                 C   s   |S r+   r
   )clsr   r
   r
   r   r7      r<   z"MetaWithDynamicGetattr.__getattr__N)r   r   r   r7   r
   r
   r
   r   rS      s    rS   c                   @   s   e Zd ZdS )	SomeClassN)r   r   r   r
   r
   r
   r   rU      s    rU   c                   @   s   e Zd Zdd Zdd ZdS )ClassWithMangledAttributec                 C   r   )NZBug1643)namer   r
   r
   r   r      r   z"ClassWithMangledAttribute.__init__c                 C   s   t | jd  d S )NZxD)r   rW   r   r
   r
   r   Z__bar   r?   zClassWithMangledAttribute.__barN)r   r   r   r   _ClassWithMangledAttribute__barr
   r
   r
   r   rV      s    rV   c                   @   r1   )Clsr   N)r   r   r   Barr
   r
   r
   r   rY      r3   rY   )-
__future__r   sixobjectr   r   r2   r5   r9   r   r   propertyr   lowerZnananaZnanananZbatmanZmissing_methodAttributeErrorZindeedImportErrormissing
ValueError	Exceptionstrr=   typeZalaZbalaZ	portocalarG   rK   rL   rO   rS   add_metaclassrU   Zdoes_not_existrV   rX   enumIntEnumrY   ZBazZ
SOME_VALUEr
   r
   r
   r   <module>   s   2






