From 14318c2897c74626e4729d394b7956fafca79ddb Mon Sep 17 00:00:00 2001 From: Jan Pokorný Date: Tue, 11 Nov 2014 23:32:00 +0100 Subject: main + more: introduce concept of "expert" cmd switches MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jan Pokorný --- utils_prog.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'utils_prog.py') 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ý " 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] -- cgit