]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
create a validator module for argparse
authorAlfredo Deza <alfredo@deza.pe>
Wed, 31 Jul 2013 16:13:22 +0000 (12:13 -0400)
committerAlfredo Deza <alfredo@deza.pe>
Wed, 31 Jul 2013 16:13:22 +0000 (12:13 -0400)
Signed-off-by: Alfredo Deza <alfredo@deza.pe>
ceph_deploy/util/arg_validators.py [new file with mode: 0644]

diff --git a/ceph_deploy/util/arg_validators.py b/ceph_deploy/util/arg_validators.py
new file mode 100644 (file)
index 0000000..b85aeaf
--- /dev/null
@@ -0,0 +1,23 @@
+import argparse
+import re
+
+
+class RegexMatch(object):
+    """
+    Performs regular expression match on value.
+    If the regular expression pattern matches it will it will return an error
+    message that will work with argparse.
+    """
+
+    def __init__(self, pattern, statement=None):
+        self.string_pattern = pattern
+        self.pattern = re.compile(pattern)
+        self.statement = statement
+        if not self.statement:
+            self.statement = "must match pattern %s" % self.string_pattern
+
+    def __call__(self, string):
+        match = self.pattern.search(string)
+        if match:
+            raise argparse.ArgumentError(None, self.statement)
+        return string