Skip to contentSkip to conversation

cooker: Don't expand python functions in variable dumps

PATCH New Richard Purdie 1 participant 1 message Feb 2, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cooker: Don't expand python functions in variable dumps

We don't want to expand python functions since they aren't expanded at execution time (e.g. anonymous python). They can also have side effects.

This function is primarily used by toaster for variable dumps for later display. The lack of expansion of python functions won't matter in this case and actively helps some variable handling (e.g. SRCPV).

bitbake/lib/bb/cooker.py +9 -2
index edd682b..fa5e631 100644
@@ -1429,14 +1429,21 @@ class BBCooker:
         dump = {}
         for k in self.data.keys():
             try:
-                v = self.data.getVar(k, True)
+                expand = True
+                flags = self.data.getVarFlags(k)
+                if flags and "func" in flags and "python" in flags:
+                    expand = False
+                v = self.data.getVar(k, expand)
                 if not k.startswith("__") and not isinstance(v, bb.data_smart.DataSmart):
                     dump[k] = {
     'v' : v ,
     'history' : self.data.varhistory.variable(k),
                     }
                     for d in flaglist:
-                        dump[k][d] = self.data.getVarFlag(k, d)
+                        if flags and d in flags:
+                            dump[k][d] = flags[d]
+                        else:
+                            dump[k][d] = None
             except Exception as e:
                 print(e)
         return dump