
    
                     T    d Z ddlmZ ddlmZ ddlmZ ddlZd Zd Zd
dZ	 	 dd	Z	y)zEConvenience utilities for manipulating collection and resource names.    )absolute_import)division)unicode_literalsNc                     g d}d}|D ])  \  }}| j                  |      s| j                  ||      }+ |s| }| d   dk(  r|dd }|S )3Convert the input collection name to singular form.))ciescy)xiesxy)riesry)xesx)essesessNs)endswithreplace)collection_nameending_pluralssingular_collection_nameplural_suffixreplacement_singulars        'lib/googlecloudsdk/core/name_parsing.pysingularizer      so    4.!-;)m).!0!8!8
-"/ .< 
".rc!!9#2!>	!!    c                 t   t        j                  d|       rt        j                  dd|       S t        j                  d|       rt        j                  dd|       S t        j                  d|       rt        j                  dd|       S t        j                  d|       rt        j                  dd	|       S | d
z   S )r   z[sxz]$$esz[^aeioudgkprt]h$z	[aeiou]y$zy$ysz[crx]y$iesr   )researchsub)r   s    r   	pluralizer&   (   s    YYx)66#t_--	yy#_566#t_--	yyo.66$o..	yyO,66$//S  r   c                 P    |j                  t        j                  d|             }|S )z6Split camel-cased collection names on capital letters.z[a-zA-Z][^A-Z]*)joinr#   findall)r   	delimitersplit_with_spacess      r   split_name_on_capitalsr,   6   s&    nnjj"O46	r   c                     | }d| v r| j                  d      d   }|rt        |      }t        ||      j                         S )N.r   )r*   )splitr   r,   lower)r   r*   make_singularcollection_name_modifieds       r   $convert_collection_name_to_delimitedr3   =   sP     -O.44S9"=*+CD	)
55:UW=r   ) )r4   T)
__doc__
__future__r   r   r   r#   r   r&   r,   r3    r   r   <module>r8      s3    L &  ' 	" ! 477;	=r   