diff options
author | Jan Pokorný <jpokorny@redhat.com> | 2014-11-11 23:32:00 +0100 |
---|---|---|
committer | Jan Pokorný <jpokorny@redhat.com> | 2014-11-14 22:11:07 +0100 |
commit | 14318c2897c74626e4729d394b7956fafca79ddb (patch) | |
tree | efd9ab3a21b0b10d120e373b4af633a420c6016f /utils_prog.py | |
parent | 7cb961c7c94b64664d6e453ebc71a32b92399bfd (diff) | |
download | clufter-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.py | 12 |
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] |