
    	                     b    S r SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKrSr	\	S-   r
S	 rS
 rg)z,Utils for camel case/snake case conversions.    )absolute_import)division)unicode_literalsN)metrics
datastream_camel_case_conversionc                 l   [        U [        [        [        45      (       a  U $ [        U [        5      (       aB  U R                  5       nU R                  5        H  u  p#[        U5      U[        U5      '   M     U$ [        U [        [        [        45      (       a  U R                  S U  5       5      nU$ U $ )a1  Recursively goes through the dictionary obj and replaces keys with the convert function.

taken from:
https://stackoverflow.com/questions/11700705/how-to-recursively-replace-character-in-keys-of-a-nested-dictionary.

Args:
  yaml_dict: dict of loaded yaml

Returns:
  A converted dict with camelCase keys
c              3   8   #    U  H  n[        U5      v   M     g 7f)N)ConvertYamlToCamelCase).0vs     9lib/googlecloudsdk/api_lib/datastream/camel_case_utils.py	<genexpr>)ConvertYamlToCamelCase.<locals>.<genexpr>2   s     KA4Q77s   )
isinstancestrintfloatdict	__class__itemsr   SnakeToCamelCaselistsettuple)	yaml_dictnewkr   s       r   r   r      s     	Ce,--	4  



C!!7!:c
1
 " 
*	 )dC/00


KK
KC 
*     c                 X   [         R                  " SU 5      (       d  U $ [         R                  " SS[        R                  " U R                  5       5      5      nU(       d  U$ [        R                  " [        5        US   R                  5       [         R                  " SS USS 5      -   $ )	z+Convert value from snake_case to camelCase.z[a-zA-Z]+_[a-zA-Z]+z^[\-_\.] r   z[\-_\.\s]([a-z])c                 @    U R                  S5      R                  5       $ )N   )groupupper)matcheds    r   <lambda>"SnakeToCamelCase.<locals>.<lambda>I   s    7==+;+A+A+Cr   r#   N)	rematchsubsix	text_typelowerr   CustomTimedEventCAMEL_CASE_CONVERSION_EVENT)valuestrings     r   r   r   8   s     
(%	0	0L 66+r3==#?@&	M 
67 
	RVVCVABZ 
 r   )__doc__
__future__r   r   r   r)   googlecloudsdk.corer   r,   _DEFAULT_API_NAMEr0   r   r    r   r   <module>r8      s8    3 &  ' 	 ' 
  /2JJ 4r   