o
    :Fdt	                     @   sL   d dl mZ d dlZd dlZi add Zdd Zdd Zd	d
 Zdd Z	dS )    )deepcopyNc                 C   s   | t v rt |  S g S N)ALIASES)Zlong_param_name r   Dusr/lib/python3.10/site-packages/oci_cli/aliasing/parameter_alias.pyget_aliases_for_long_parameter   s   r   c                 C   s^   t   t }t| jD ] \}}t|tjr|t	| qt|tj
r,|t|j q|S r   )remove_redundant_aliasessetsix	iteritemscommands
isinstanceclickGroupupdateshim_in_aliasesCommandadd_alias_to_command_paramsparams)Zcommand_groupcollision_errorscmd_namecmd_objr   r   r   r      s   r   c              
   C   s   i }| D ]}|j ||j< qt }| D ]3}|j }|D ]+}|tv rDt||jt| }|r=|d|d |d |d d  q|t|  qq|S )NzYCould not add alias {} to param {} as it conflicts with existing options for parameter {}r      )optsnamer	   r   does_option_name_already_existaddformatextend)r   original_optsparamr   Zavailable_optsoZalias_exists_tupler   r   r   r      s"   
r   c                 C   sF   t | D ]\}}||krq|D ]}||v r|||f    S qqd S r   )r
   r   )r   
param_namealiasesr    r   ar   r   r   r   4   s   r   c                     sD   t t} t D ]\ } |v rtt fdd||  < q| ad S )Nc                    s   |  kS r   r   )aliasr    r   r   <lambda>F   s    z*remove_redundant_aliases.<locals>.<lambda>)r   r   itemslistfilter)Znew_aliasesr#   r   r&   r   r   A   s   r   )
copyr   r   r
   r   r   r   r   r   r   r   r   r   r   <module>   s   