@@ -24,6 +24,7 @@ import io
import bb.event
import bb.cooker
import bb.remotedata
+import bb.parse
class DataStoreConnectionHandle(object):
def __init__(self, dsindex=0):
@@ -582,6 +583,13 @@ class CommandsSync:
return DataStoreConnectionHandle(idx)
parseRecipeFile.readonly = True
+ def finalizeData(self, command, params):
+ newdata = command.cooker.data.createCopy()
+ bb.data.expandKeys(newdata)
+ bb.parse.ast.runAnonFuncs(newdata)
+ idx = command.remotedatastores.store(newdata)
+ return DataStoreConnectionHandle(idx)
+
class CommandsAsync:
"""
A class of asynchronous commands
@@ -633,6 +633,12 @@ class Tinfoil:
fn = self.get_recipe_file(pn)
return self.parse_recipe_file(fn)
+ def finalizeData(self):
+ """
+ Run anonymous functions and expand keys
+ """
+ return self._reconvert_type(self.run_command('finalizeData'), 'DataStoreConnectionHandle')
+
def parse_recipe_file(self, fn, appends=True, appendlist=None, config_data=None):
"""
Parse the specified recipe file (with or without bbappends)