Add support for RE patterns to convert constants
authorIustin Pop <iustin@google.com>
Fri, 23 Dec 2011 10:13:34 +0000 (11:13 +0100)
committerIustin Pop <iustin@google.com>
Fri, 13 Jan 2012 13:16:19 +0000 (14:16 +0100)
This is a trivial conversion.

Signed-off-by: Iustin Pop <iustin@google.com>
Reviewed-by: RenĂ© Nussbaumer <rn@google.com>

autotools/convert-constants

index 89f9f00..ae36774 100755 (executable)
@@ -27,8 +27,12 @@ import re
 from ganeti import constants
 from ganeti import compat
 
+#: Constant name regex
 CONSTANT_RE = re.compile("^[A-Z][A-Z0-9_-]+$")
 
+#: The type of regex objects
+RE_TYPE = type(CONSTANT_RE)
+
 
 def NameRules(name):
   """Converts the upper-cased Python name to Haskell camelCase.
@@ -129,6 +133,12 @@ def ConvertVariable(name, value):
         lines.append("-- | Skipped list/set %s, is not homogeneous" % name)
     else:
       lines.append("-- | Skipped list/set %s, cannot convert all elems" % name)
+  elif isinstance(value, RE_TYPE):
+    tvs = HaskellTypeVal(value.pattern)
+    assert tvs is not None
+    lines.append("-- | Converted from Python RE object %s" % name)
+    lines.append("%s :: %s" % (hs_name, tvs[0]))
+    lines.append("%s = %s" % (hs_name, tvs[1]))
   else:
     lines.append("-- Skipped %s, %s not handled" % (name, type(value)))
   return lines