This is an automated email from the ASF dual-hosted git repository.

tvb pushed a commit to branch valentindavid/flatpak-demo
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit c31e5a10796a26aabe83b819b255688e56682c0a
Author: Valentin David <[email protected]>
AuthorDate: Wed Jun 27 17:06:36 2018 +0200

    buildstream/_includes.py: Cache loaded fragments.
---
 buildstream/_includes.py | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/buildstream/_includes.py b/buildstream/_includes.py
index 718cd82..eed73a0 100644
--- a/buildstream/_includes.py
+++ b/buildstream/_includes.py
@@ -8,6 +8,7 @@ class Includes:
     def __init__(self, loader, valid_keys=None):
         self._loader = loader
         self._valid_keys = valid_keys
+        self._loaded = {}
 
     def process(self, node):
         while True:
@@ -35,7 +36,10 @@ class Includes:
             directory = junction_loader.project.directory
         else:
             directory = self._loader.project.directory
-        return _yaml.load(os.path.join(directory, include))
+        file_path = os.path.join(directory, include)
+        if file_path not in self._loaded:
+            self._loaded[file_path] = _yaml.load(os.path.join(directory, 
include))
+        return self._loaded[file_path]
 
     def _process_value(self, value):
         if isinstance(value, Mapping):

Reply via email to