[bitbake-devel] Richard Purdie : data_smart: Add appendVar/prependVar functions

git at git.openembedded.org git at git.openembedded.org
Thu Nov 10 11:40:39 UTC 2011


Module: bitbake.git
Branch: master
Commit: 4a4046268f84b85559eea2c4b6a6004ad8cccb77
URL:    http://git.openembedded.org/?p=bitbake.git&a=commit;h=4a4046268f84b85559eea2c4b6a6004ad8cccb77

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Tue Nov  8 18:02:15 2011 +0000

data_smart: Add appendVar/prependVar functions

This patch adds appendVar and prependVar functions to the data store
meaning python code would no longer have to do the getVar, append and
the setVar dance that much of the current python code does.

It also adds corresponding variants for flags.

Currently there is no spacing added by these functions. That could be
added as a parameter if desired.

If these functions turn out to be hotspots in the code, there are tricks
that could potentially be used to increase the speed of these specific
operations within the datastore.

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 lib/bb/data_smart.py |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/lib/bb/data_smart.py b/lib/bb/data_smart.py
index 072f403..ec4e921 100644
--- a/lib/bb/data_smart.py
+++ b/lib/bb/data_smart.py
@@ -304,6 +304,14 @@ class DataSmart(MutableMapping):
 
         self.delVar(key)
 
+    def appendVar(self, key, value):
+        value = (self.getVar(key, False) or "") + value
+        self.setVar(key, value)
+
+    def prependVar(self, key, value):
+        value = value + (self.getVar(key, False) or "")
+        self.setVar(key, value)
+
     def delVar(self, var):
         self.expand_cache = {}
         self.dict[var] = {}
@@ -339,6 +347,14 @@ class DataSmart(MutableMapping):
         if var in self.dict and flag in self.dict[var]:
             del self.dict[var][flag]
 
+    def appendVarFlag(self, key, flag, value):
+        value = (self.getVarFlag(key, flag, False) or "") + value
+        self.setVarFlag(key, flag, value)
+
+    def prependVarFlag(self, key, flag, value):
+        value = value + (self.getVarFlag(key, flag, False) or "")
+        self.setVarFlag(key, flag, value)
+
     def setVarFlags(self, var, flags):
         if not var in self.dict:
             self._makeShadowCopy(var)





More information about the bitbake-devel mailing list