o
    `j`                     @   s(   d dl mZ d ddZG dd dZdS )    )defaultdict   )	preferreduncleanc                   @   s,   e Zd ZdZdZedd Zedd ZdS )ElectLeaderszelect-leadersz&Trigger leader election for partitionsc              	   C   sp   |j dtdttdd |j ddtddg d	d
 |j ddtddg dd
 |j dtd dd |j ddddd d S )Nz--election-typer   z"Election type (default: preferred))typedefaultchoiceshelpz-pz--topic-partitionappendtopic_partitionszZTOPIC:PARTITION pair (repeatable). Omit to elect leaders for all partitions of all topics.)r   actiondestr   r
   z-tz--topictopicszbElect leaders for all partitions of TOPIC (repeatable). Mutually exclusive with --topic-partition.z--timeout-mszRequest timeout in milliseconds)r   r   r
   z--no-raise-errorsraise_errorsstore_falsezCDo not raise on partition-level errors; return the response instead)r   r   r
   )add_argumentstrsorted_ELECTION_TYPESint)clsparser r   f/home/djax/ivt_ai_plugin/venv/lib/python3.10/site-packages/kafka/cli/admin/partitions/elect_leaders.pyadd_arguments   s.   
zElectLeaders.add_argumentsc                 C   s   |j r
|jr
td|j r-tt}|j D ]}|dd\}}|| t| qt|}n	|jr4|j}nd }|j	t
|j ||j|jdS )Nz4--topic-partition and --topic are mutually exclusive:r   )r   
timeout_msr   )r   r   
ValueErrorr   listrsplitr   r   dictelect_leadersr   election_typer   r   )r   clientargstopic2partitionsspectopic	partitionr   r   r   r   command"   s&   

zElectLeaders.commandN)__name__
__module____qualname__COMMANDHELPclassmethodr   r*   r   r   r   r   r      s    
r   N)collectionsr   r   r   r   r   r   r   <module>   s    
