summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan van Berkom <tristan.vanberkom@codethink.co.uk>2020-06-10 15:39:14 +0900
committerTristan van Berkom <tristan.vanberkom@codethink.co.uk>2020-06-10 15:41:07 +0900
commit78e7095702d9166f9268029e95d14f855b3b0c49 (patch)
tree43a492e612cb675a57b4bf8759a09ec1428004bb
parentdd7b31e2135096086275b233982092d8a26ba393 (diff)
downloadbuildstream-tristan/get-loader-provenance.tar.gz
_loader/loader.py: Make provenance a positional argumenttristan/get-loader-provenance
This forces the `provenance` to `Loader.get_loader()` to be a mandatory argument, ensuring that there are never any callers which fail to provide provenance.
-rw-r--r--src/buildstream/_includes.py2
-rw-r--r--src/buildstream/_loader/loader.py8
-rw-r--r--src/buildstream/_pluginfactory/pluginoriginjunction.py2
3 files changed, 6 insertions, 6 deletions
diff --git a/src/buildstream/_includes.py b/src/buildstream/_includes.py
index e4b144337..1556bc613 100644
--- a/src/buildstream/_includes.py
+++ b/src/buildstream/_includes.py
@@ -138,7 +138,7 @@ class Includes:
shortname = include
if ":" in include:
junction, include = include.rsplit(":", 1)
- current_loader = loader.get_loader(junction, provenance=provenance)
+ current_loader = loader.get_loader(junction, provenance)
current_loader.project.ensure_fully_loaded()
else:
current_loader = loader
diff --git a/src/buildstream/_loader/loader.py b/src/buildstream/_loader/loader.py
index 17f0d906f..e62e99730 100644
--- a/src/buildstream/_loader/loader.py
+++ b/src/buildstream/_loader/loader.py
@@ -164,15 +164,15 @@ class Loader:
#
# Args:
# name (str): Name of junction, may have multiple `:` in the name
+ # provenance (ProvenanceInformation): The provenance
# rewritable (bool): Whether the loaded files should be rewritable
# this is a bit more expensive due to deep copies
# ticker (callable): An optional function for tracking load progress
- # provenance (ProvenanceInformation): The provenance
#
# Returns:
# (Loader): loader for sub-project
#
- def get_loader(self, name, *, rewritable=False, ticker=None, level=0, provenance=None):
+ def get_loader(self, name, provenance, *, rewritable=False, ticker=None, level=0):
junction_path = name.split(":")
loader = self
@@ -422,7 +422,7 @@ class Loader:
if dep.junction:
loader = self.get_loader(
- dep.junction, rewritable=rewritable, ticker=ticker, provenance=dep.provenance
+ dep.junction, dep.provenance, rewritable=rewritable, ticker=ticker
)
dep_element = loader._load_file(dep.name, rewritable, ticker, dep.provenance)
else:
@@ -780,7 +780,7 @@ class Loader:
if len(junction_path) == 1:
return None, junction_path[-1], self
else:
- loader = self.get_loader(junction_path[-2], rewritable=rewritable, ticker=ticker, provenance=provenance)
+ loader = self.get_loader(junction_path[-2], provenance, rewritable=rewritable, ticker=ticker)
return junction_path[-2], junction_path[-1], loader
# Print a warning message, checks warning_token against project configuration
diff --git a/src/buildstream/_pluginfactory/pluginoriginjunction.py b/src/buildstream/_pluginfactory/pluginoriginjunction.py
index 8c1d560fb..4e0a53cfb 100644
--- a/src/buildstream/_pluginfactory/pluginoriginjunction.py
+++ b/src/buildstream/_pluginfactory/pluginoriginjunction.py
@@ -35,7 +35,7 @@ class PluginOriginJunction(PluginOrigin):
# Get access to the project indicated by the junction,
# possibly loading it as a side effect.
#
- loader = self.project.loader.get_loader(self._junction, provenance=self.provenance)
+ loader = self.project.loader.get_loader(self._junction, self.provenance)
project = loader.project
project.ensure_fully_loaded()