
    K                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 ddl
mZ d	 Zd
 Z G d dej                        Zy)z9Argcomplete completers for various config related things.    )absolute_import)division)unicode_literals)
completers)module_util)
properties)named_configsc                    t         j                  j                         }g }d| v r| j                  dd      }|d   }|d   } ||v rf|dz   }t         j                  j	                  |      j                         }|j                  |D cg c]  }|j                  |       s||z    c}       |S |j                  |D 	cg c]  }	|	j                  |       s|	dz    c}	       t         j                  j                  j                  }t         j                  j	                  |      j                         }|j                  |D cg c]  }|j                  |       s| c}       |S c c}w c c}	w c c}w )z8An argcomplete completer for property and section names./   r   )
r   VALUESAllSectionssplitSectionAllPropertiesextend
startswithdefault_sectionname)
prefixunused_kwargsall_sectionsoptionspartssectionsection_strpropspss
             3lib/googlecloudsdk/command_lib/config/completers.pyPropertiesCompleterr!      sC   ""..0,'F]LLa EAhG1XF,cMk''0>>@ennuMu!V8LkAouMN 
. NN\J\Q\\&5IAG\JK//44G%%g.<<>ENNu=u!V(<Au=>	. N K >s$   E%E%<E*E*E/E/c                     t        t        j                  j                         j	                               }|D cg c]  }|j                  |       s| c}S c c}w )z@An argcomplete completer for existing named configuration names.)listr	   ConfigurationStore
AllConfigskeysr   )r   r   configscs       r    NamedConfigCompleterr)   5   sG    11<<>CCEF'	5WV 4!W	55	5s   AAc                       e Zd ZdZd ZddZy)PropertyValueCompleterzwA completer for a specific property value.

  The property value to be completed is not known until completion time.
  c                    t         j                  j                  j                  j	                  d       |j                  d      }|sy t        j                  |      }|sy |j                  r,|j                  D cg c]  }|j                  |      s| c}S |j                  rDt        j                  |j                        } || j                        }|j                  ||      S y c c}w )NTproperty)cache)r   r   coreprint_completion_tracebacksSetGetValue
FromStringchoicesr   	completerr   ImportModuler.   Complete)selfr   parameter_info	prop_namepropr(   completer_classr5   s           r    r7   zPropertyValueCompleter.CompleteA   s    66::4@''
3I  +D||>Af)=a>>~~#00@o!

3i77  ?s   :C)C)Nc                      ~~y)z#No completion cache for properties.N )r8   r9   aggregationss      r    UpdatezPropertyValueCompleter.UpdateY   s        )NN)__name__
__module____qualname____doc__r7   r@   r>   rA   r    r+   r+   ;   s    
0%rA   r+   N)rE   
__future__r   r   r   googlecloudsdk.command_lib.utilr   googlecloudsdk.corer   r   "googlecloudsdk.core.configurationsr	   r!   r)   	Converterr+   r>   rA   r    <module>rK      s<     @ &  ' 6 + * <26 %Z11  %rA   