|
From: <de...@us...> - 2002-12-11 20:31:08
|
Update of /cvsroot/pymerase/pymerase/util
In directory sc8-pr-cvs1:/tmp/cvs-serv11300
Modified Files:
NameMangling.py
Log Message:
Add new Name Mangler that is useful for converting names to things
like english. (Capitalize first word, use spaces between components)
Index: NameMangling.py
===================================================================
RCS file: /cvsroot/pymerase/pymerase/util/NameMangling.py,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** NameMangling.py 11 Oct 2002 19:24:10 -0000 1.3
--- NameMangling.py 11 Dec 2002 20:30:53 -0000 1.4
***************
*** 79,80 ****
--- 79,103 ----
return "append_%s" % (self.mangle(name))
+ class EnglishWord(nullMangler):
+ """Given a string convert it to english sentance conventions
+
+ capitalize first word, put spaces between other elements.
+ """
+ def mangle(self, name):
+ if type(name) == types.StringType or type(name) == types.UnicodeType:
+ if len(name) > 0:
+ s = string.lower(re.sub('(\w)([A-Z][^A-Z])', "\\1 \\2", name))
+ return string.upper(s[0]) + s[1:]
+
+ return ""
+ #raise ValueError("mangle requires a string not a %s" % str(type(name)))
+
+ def createGetter(self, name):
+ return "get_%s" % (self.mangle(name))
+
+ def createSetter(self, name):
+ return "set_%s" % (self.mangle(name))
+
+ def createAppender(self, name):
+ return "append_%s" % (self.mangle(name))
+
|