diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-06-22 15:30:47 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-06-26 21:10:27 +0300 |
commit | 46e61971ce4d83bdea5363a57ae0820857d5843a (patch) | |
tree | cb34012d7cfc829812a933cd83ec70d04ac21673 /mesonbuild/interpreterbase.py | |
parent | ce9cd33f27e8605c2d7fc77c3c2f086b6ac530ae (diff) | |
download | meson-46e61971ce4d83bdea5363a57ae0820857d5843a.zip meson-46e61971ce4d83bdea5363a57ae0820857d5843a.tar.gz meson-46e61971ce4d83bdea5363a57ae0820857d5843a.tar.bz2 |
Decorator to check for permitted kwargs.
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index fb87ea2..9753b25 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -55,6 +55,19 @@ def stringArgs(f): return f(self, node, args, kwargs) return wrapped +class permittedKwargs: + + def __init__(self, permitted): + self.permitted = permitted + + def __call__(self, f): + def wrapped(s, node, args, kwargs): + for k in kwargs: + if k not in self.permitted: + raise InvalidArguments('Invalid keyword argument %s.' % k) + return f(s, node, args, kwargs) + return wrapped + class InterpreterException(mesonlib.MesonException): pass |