
    yIf                    n    d Z ddlmZ ddlmZ ddlmZ ddlmZ erddl	m
Z
  G d de          ZddZdS )zGCheck for if / assign blocks that can be rewritten with if-expressions.    )annotations)TYPE_CHECKING)nodes)BaseChecker)PyLinterc                  "    e Zd ZdZddiZd
dZd	S ) ConsiderTernaryExpressionCheckerconsider_ternary_expressionW0160)z*Consider rewriting as a ternary expressionconsider-ternary-expressionzxMultiple assign statements spread across if/else blocks can be rewritten with a single assignment and ternary expressionnodenodes.IfreturnNonec                N   t          |j        t          j                  rd S t	          |j                  dk    st	          |j                  dk    rd S |j        d         }|j        d         }t          |t          j                  rt          |t          j                  sd S t          |j	        |j	                  D ]O\  }}t          |t          j
                  rt          |t          j
                  s d S |j        |j        k    r d S P|                     d|           d S )N   r   r   )r   )
isinstanceparentr   IflenbodyorelseAssignziptargets
AssignNamenameadd_message)selfr   bstostbnameonames         a/var/www/piapp/venv/lib/python3.11/site-packages/pylint/extensions/consider_ternary_expression.pyvisit_ifz)ConsiderTernaryExpressionChecker.visit_if   s    dk58,, 	Fty>>Q#dk"2"2a"7"7Filk!n#u|,, 	JsEL4Q4Q 	FS[99 	 	LE5eU%566 ju'? ?  zUZ'' ( 	6TBBBBB    N)r   r   r   r   )__name__
__module____qualname__r   msgsr%    r&   r$   r	   r	      sB        (D 
DC C C C C Cr&   r	   linterr   r   r   c                J    |                      t          |                      d S )N)register_checkerr	   )r,   s    r$   registerr/   7   s%    
<VDDEEEEEr&   N)r,   r   r   r   )__doc__
__future__r   typingr   astroidr   pylint.checkersr   pylint.lintr   r	   r/   r+   r&   r$   <module>r6      s   
 N M " " " " " "                   ' ' ' ' ' ' %$$$$$$!C !C !C !C !C{ !C !C !CHF F F F F Fr&   