diff options
author | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-26 18:06:30 +0100 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-08-31 12:08:51 +0100 |
commit | 13fdd4ae5d5709332d84427ff8e60dc9ba62974f (patch) | |
tree | 92f9e97a2914139c46af87f2733486d3fdbfd65d /bitbake | |
parent | f7627e4f677c628bf25ccbf4973ac3e4cd986dee (diff) | |
download | poky-13fdd4ae5d5709332d84427ff8e60dc9ba62974f.tar.gz |
bitbake/BBHandler: Save python functions into the dictonary
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/parse/ast.py | 10 | ||||
-rw-r--r-- | bitbake/lib/bb/parse/parse_py/BBHandler.py | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index eb24e0ddd4..8763362cdf 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py | |||
@@ -137,7 +137,8 @@ class MethodNode: | |||
137 | bb.data.setVar(self.func_name, '\n'.join(self.body), data) | 137 | bb.data.setVar(self.func_name, '\n'.join(self.body), data) |
138 | 138 | ||
139 | class PythonMethodNode(AstNode): | 139 | class PythonMethodNode(AstNode): |
140 | def __init__(self, root, body, fn): | 140 | def __init__(self, funcname, root, body, fn): |
141 | self.func_name = funcname | ||
141 | self.root = root | 142 | self.root = root |
142 | self.body = body | 143 | self.body = body |
143 | self.fn = fn | 144 | self.fn = fn |
@@ -149,6 +150,9 @@ class PythonMethodNode(AstNode): | |||
149 | if not bb.methodpool.parsed_module(self.root): | 150 | if not bb.methodpool.parsed_module(self.root): |
150 | text = '\n'.join(self.body) | 151 | text = '\n'.join(self.body) |
151 | bb.methodpool.insert_method(self.root, text, self.fn) | 152 | bb.methodpool.insert_method(self.root, text, self.fn) |
153 | bb.data.setVarFlag(self.func_name, "func", 1, data) | ||
154 | bb.data.setVarFlag(self.func_name, "python", 1, data) | ||
155 | bb.data.setVar(self.func_name, text, data) | ||
152 | 156 | ||
153 | class MethodFlagsNode(AstNode): | 157 | class MethodFlagsNode(AstNode): |
154 | def __init__(self, key, m): | 158 | def __init__(self, key, m): |
@@ -270,8 +274,8 @@ def handleData(statements, groupd): | |||
270 | def handleMethod(statements, func_name, lineno, fn, body): | 274 | def handleMethod(statements, func_name, lineno, fn, body): |
271 | statements.append(MethodNode(func_name, body, lineno, fn)) | 275 | statements.append(MethodNode(func_name, body, lineno, fn)) |
272 | 276 | ||
273 | def handlePythonMethod(statements, root, body, fn): | 277 | def handlePythonMethod(statements, funcname, root, body, fn): |
274 | statements.append(PythonMethodNode(root, body, fn)) | 278 | statements.append(PythonMethodNode(funcname, root, body, fn)) |
275 | 279 | ||
276 | def handleMethodFlags(statements, key, m): | 280 | def handleMethodFlags(statements, key, m): |
277 | statements.append(MethodFlagsNode(key, m)) | 281 | statements.append(MethodFlagsNode(key, m)) |
diff --git a/bitbake/lib/bb/parse/parse_py/BBHandler.py b/bitbake/lib/bb/parse/parse_py/BBHandler.py index bb56174881..51ad10fb92 100644 --- a/bitbake/lib/bb/parse/parse_py/BBHandler.py +++ b/bitbake/lib/bb/parse/parse_py/BBHandler.py | |||
@@ -183,7 +183,7 @@ def feeder(lineno, s, fn, root, statements): | |||
183 | __body__.append(s) | 183 | __body__.append(s) |
184 | return | 184 | return |
185 | else: | 185 | else: |
186 | ast.handlePythonMethod(statements, root, __body__, fn) | 186 | ast.handlePythonMethod(statements, __inpython__, root, __body__, fn) |
187 | __body__ = [] | 187 | __body__ = [] |
188 | __inpython__ = False | 188 | __inpython__ = False |
189 | 189 | ||
@@ -210,7 +210,8 @@ def feeder(lineno, s, fn, root, statements): | |||
210 | m = __def_regexp__.match(s) | 210 | m = __def_regexp__.match(s) |
211 | if m: | 211 | if m: |
212 | __body__.append(s) | 212 | __body__.append(s) |
213 | __inpython__ = True | 213 | __inpython__ = m.group(1) |
214 | |||
214 | return | 215 | return |
215 | 216 | ||
216 | m = __export_func_regexp__.match(s) | 217 | m = __export_func_regexp__.match(s) |