From: Alfredo Deza Date: Wed, 31 Jul 2013 16:13:22 +0000 (-0400) Subject: create a validator module for argparse X-Git-Tag: v1.2~12^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=143047954208df6c0300f73fb8369ea33590a159;p=ceph-deploy.git create a validator module for argparse Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/util/arg_validators.py b/ceph_deploy/util/arg_validators.py new file mode 100644 index 0000000..b85aeaf --- /dev/null +++ b/ceph_deploy/util/arg_validators.py @@ -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