o
    bo	                     @   s   d Z ddlmZ 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
dd Zdd Zdd Zdd ZdS )z0 Checks that reversed() receive proper argument     )dequec                   @      e Zd ZdZdd ZdS )GoodReversedz Implements __reversed__ c                 C   s   g dS )N          selfr	   r	   k/var/www/secure340b-portal/env/lib/python3.10/site-packages/pylint/test/functional/bad_reversed_sequence.py__reversed__
   s   zGoodReversed.__reversed__N)__name__
__module____qualname____doc__r   r	   r	   r	   r   r          r   c                   @   s    e Zd ZdZdd Zdd ZdS )SecondGoodReversedz$ Implements __len__ and __getitem__ c                 C      dS Nr   r	   r
   r	   r	   r   __len__      zSecondGoodReversed.__len__c                 C      |S Nr	   r   indexr	   r	   r   __getitem__   r   zSecondGoodReversed.__getitem__N)r   r   r   r   r   r   r	   r	   r	   r   r      s    r   c                   @   r   )BadReversedz implements only len() c                 C   r   r   r	   r
   r	   r	   r   r      r   zBadReversed.__len__N)r   r   r   r   r   r	   r	   r	   r   r      r   r   c                   @   r   )SecondBadReversedz implements only __getitem__ c                 C   r   r   r	   r   r	   r	   r   r      r   zSecondBadReversed.__getitem__N)r   r   r   r   r   r	   r	   r	   r   r      r   r   c                   @   s   e Zd ZdZdS )ThirdBadReversedz dict subclass N)r   r   r   r   r	   r	   r	   r   r      s    r   c                 C   s   t | S )zY This can't be infered at this moment,
    make sure we don't have a false positive.
    )reversed)seqr	   r	   r   uninferable"   s   r"   c                 C   s   t  }t d}t g d}t d}t t }t ddd}t tg d}t t }t t }t t }t t }t td}t t }t dd }t t	g }t d	}t
g d}t | d
}|S )z test function Nr   r   r   )abd   c                   S   s   d S r   r	   r	   r	   r	   r   <lambda>7   s    ztest.<locals>.<lambda>Z123/)r    setiterr   r   r   r   ranger   r   r"   split)pathr!   r	   r	   r   test(   s&   





r-   c                  C   s4   ddl m}  G dd dt}t|  }t| |fS )zADon't emit for subclasses of dict, with __reversed__ implemented.r   )OrderedDictc                   @   s   e Zd Zdd ZdS )z.test_dict_ancestor_and_reversed.<locals>.Childc                 S   s   t tdS )N
   )r    r*   r
   r	   r	   r   r   C   s   z;test_dict_ancestor_and_reversed.<locals>.Child.__reversed__N)r   r   r   r   r	   r	   r	   r   ChildB   s    r0   )collectionsr.   dictr    )r.   r0   r!   r	   r	   r   test_dict_ancestor_and_reversed>   s   
r3   c                  c   s6    ddl m}  G dd d| }t|D ]}|V  qdS )z&Don't emit when reversing enum classesr   )IntEnumc                   @   s   e Zd ZdZdZdZdS )z1test_dont_emit_for_reversing_enums.<locals>.Colorr   r   r   N)r   r   r   REDGREENBLUEr	   r	   r	   r   ColorN   s    r8   N)enumr4   r    )r4   r8   colorr	   r	   r   "test_dont_emit_for_reversing_enumsJ   s   r;   N)r   r1   r   Z__revision__objectr   r   r   r   r2   r   r"   r-   r3   r;   r	   r	   r	   r   <module>   s    