diff options
Diffstat (limited to 'bitbake/lib/bb/utils.py')
-rw-r--r-- | bitbake/lib/bb/utils.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 8f75871c18..0a1bf6880a 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -37,6 +37,7 @@ import errno | |||
37 | import signal | 37 | import signal |
38 | import ast | 38 | import ast |
39 | import collections | 39 | import collections |
40 | import copy | ||
40 | from subprocess import getstatusoutput | 41 | from subprocess import getstatusoutput |
41 | from contextlib import contextmanager | 42 | from contextlib import contextmanager |
42 | from ctypes import cdll | 43 | from ctypes import cdll |
@@ -407,8 +408,13 @@ def better_exec(code, context, text = None, realfile = "<code>", pythonexception | |||
407 | def simple_exec(code, context): | 408 | def simple_exec(code, context): |
408 | exec(code, get_context(), context) | 409 | exec(code, get_context(), context) |
409 | 410 | ||
410 | def better_eval(source, locals): | 411 | def better_eval(source, locals, extraglobals = None): |
411 | return eval(source, get_context(), locals) | 412 | ctx = get_context() |
413 | if extraglobals: | ||
414 | ctx = copy.copy(ctx) | ||
415 | for g in extraglobals: | ||
416 | ctx[g] = extraglobals[g] | ||
417 | return eval(source, ctx, locals) | ||
412 | 418 | ||
413 | @contextmanager | 419 | @contextmanager |
414 | def fileslocked(files): | 420 | def fileslocked(files): |