potaahto

Conversions and redundancy for partisan naming choices
git clone git://git.defalsify.org/python-potaahto.git
Log | Files | Refs | LICENSE

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