o
    g(                     @   sD   d Z ddlmZ ddlmZ ddlmZ G dd deZdd Zd	S )
zGCheck for if / assign blocks that can be rewritten with if-expressions.    )nodes)BaseChecker)IAstroidCheckerc                   @   s2   e Zd ZefZdZddiZdejddf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 assingment and ternary expressionnodereturnNc                 C   s   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s1d S t|j	|j	D ]\}}t |tj
rHt |tj
sK d S |j|jkrT d S q8| jd|d d S )N   r   r   )r	   )
isinstanceparentr   IflenbodyorelseAssignziptargets
AssignNamenameadd_message)selfr	   bstostbnameoname r   k/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/pylint/extensions/consider_ternary_expression.pyvisit_if   s"   

z)ConsiderTernaryExpressionChecker.visit_if)
__name__
__module____qualname__r   __implements__r   msgsr   r   r   r   r   r   r   r   	   s    	r   c                 C   s   |  t|  dS )zRequired method to auto register this checker.

    :param linter: Main interface object for Pylint plugins
    :type linter: Pylint object
    N)register_checkerr   )linterr   r   r   register/   s   r'   N)	__doc__astroidr   pylint.checkersr   pylint.interfacesr   r   r'   r   r   r   r   <module>   s    &