symbols.py (1225B)
1 # standard imports 2 import re 3 #import logging 4 5 #logg = logging.getLogger().getChild(__name__) 6 7 8 re_camel = re.compile(r'([a-z0-9]+)([A-Z])') 9 re_snake = re.compile(r'([a-z0-9]+)_([A-Za-z])') 10 11 def snake_and_camel_s(k): 12 s_camel = '' 13 s_snake = '' 14 right_pos = 0 15 for m in re_camel.finditer(k): 16 g = m.group(0) 17 s_snake += g[:len(g)-1] 18 s_snake += '_' + g[len(g)-1].lower() 19 right_pos = m.span()[1] 20 s_snake += k[right_pos:] 21 22 right_pos = 0 23 for m in re_snake.finditer(k): 24 g = m.group(0) 25 s_camel += g[:len(g)-2] 26 #s += '_' + g[len(g)-1].lower() 27 s_camel += g[len(g)-1].upper() 28 right_pos = m.span()[1] 29 s_camel += k[right_pos:] 30 31 return (s_snake, s_camel) 32 33 34 def snake_and_camel(src): 35 src_normal = {} 36 for k in src.keys(): 37 (s_snake, s_camel) = snake_and_camel_s(k) 38 src_normal[k] = src[k] 39 #if s != k: 40 if k != s_snake: 41 #logg.debug('adding snake {} for camel {}'.format(s_snake, k)) 42 src_normal[s_snake] = src[k] 43 44 if k != s_camel: 45 #logg.debug('adding camel {} for snake {}'.format(s_camel, k)) 46 src_normal[s_camel] = src[k] 47 48 return src_normal