bitbake: codeparser: Skipping typing when inspecting Python modules

If a custom python module is added thru BBIMPORTS and it
uses typing(Any,Tuple,Union...), codeparser will fail because
inspect.py raises TypeError exception if the object is a
built-in module, class, or function.

(Bitbake rev: 0ecfd0b8540220633e71d24cd73cc5306863ae3c)

Signed-off-by: Pedro Silva Ferreira <Pedro.Silva.Ferreira@criticaltechworks.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Pedro Ferreira 2025-03-07 10:33:51 +00:00 committed by Richard Purdie
parent 19584fedb8
commit 3480f4dbe9

View File

@ -72,12 +72,20 @@ def add_module_functions(fn, functions, namespace):
parser.parse_python(None, filename=fn, lineno=1, fixedhash=fixedhash+f)
#bb.warn("Cached %s" % f)
except KeyError:
targetfn = inspect.getsourcefile(functions[f])
try:
targetfn = inspect.getsourcefile(functions[f])
except TypeError:
# Builtin
continue
if fn != targetfn:
# Skip references to other modules outside this file
#bb.warn("Skipping %s" % name)
continue
lines, lineno = inspect.getsourcelines(functions[f])
try:
lines, lineno = inspect.getsourcelines(functions[f])
except TypeError:
# Builtin
continue
src = "".join(lines)
parser.parse_python(src, filename=fn, lineno=lineno, fixedhash=fixedhash+f)
#bb.warn("Not cached %s" % f)