summaryrefslogtreecommitdiffstats
path: root/utils_prog.py
diff options
context:
space:
mode:
authorJan Pokorný <jpokorny@redhat.com>2014-11-11 23:32:00 +0100
committerJan Pokorný <jpokorny@redhat.com>2014-11-14 22:11:07 +0100
commit14318c2897c74626e4729d394b7956fafca79ddb (patch)
treeefd9ab3a21b0b10d120e373b4af633a420c6016f /utils_prog.py
parent7cb961c7c94b64664d6e453ebc71a32b92399bfd (diff)
downloadclufter-14318c2897c74626e4729d394b7956fafca79ddb.tar.gz
clufter-14318c2897c74626e4729d394b7956fafca79ddb.tar.xz
clufter-14318c2897c74626e4729d394b7956fafca79ddb.zip
main + more: introduce concept of "expert" cmd switches
Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
Diffstat (limited to 'utils_prog.py')
-rw-r--r--utils_prog.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/utils_prog.py b/utils_prog.py
index ca0ac79..cfbecbf 100644
--- a/utils_prog.py
+++ b/utils_prog.py
@@ -7,7 +7,7 @@ __author__ = "Jan Pokorný <jpokorny @at@ Red Hat .dot. com>"
import logging
from collections import Mapping, MutableMapping, MutableSequence, MutableSet
-from optparse import make_option
+from optparse import Option
from os import environ, pathsep
from os.path import abspath, dirname, samefile, \
isabs as path_isabs, \
@@ -19,6 +19,7 @@ from sys import stderr, stdin
from . import package_name
from .error import ClufterError
from .utils import areinstances, \
+ filterdict_invkeep, \
filterdict_pop, \
func_defaults_varnames, \
isinstanceexcept, \
@@ -153,7 +154,14 @@ longopt_letters_reprio = \
key=lambda x: int(x.lower() in 'aeiouy')))
)(filter(lambda c: c.isalpha(), longopt))
-# extrapolate optparse.make_option to specifically-encoded "plural"
+class ExpertOption(Option):
+ pass
+
+make_option = \
+ lambda *a, **kw: \
+ (ExpertOption if kw.pop('expert', False) else Option)(*a, **kw)
+
+# extrapolate make_option to specifically-encoded "plural"
make_options = lambda opt_decl: [make_option(*a, **kw) for a, kw in opt_decl]