return s
- def get_var(self, key, default=None):
+ def get_var(self, key, default=None, raw=False):
definitions = {}
definitions.update(self.root.definitions)
+ if self.parent:
+ definitions.update(self.parent.definitions)
definitions.update(self.definitions)
val = None
if val is None:
val = default
+ if raw:
+ return val
+
return self.expand_string(val)
def init(self, environ):
k, o, v = m.groups()
if o == "+":
- prev = self.definitions.get(k, None)
- if prev is None and self.parent:
- prev = self.parent.definitions.get(k, None)
+ prev = self.get_var(k, default=None, raw=True)
if prev:
v = " ".join((prev or "", v))
self._lineno += 1
continue
- build = BuildLexer(lines, parent=self)
+ build = BuildLexer(lines, parent=self.build)
self.build.inherit(build)
def parse_include(self):
raw=True,
)
- pkgs = PackagesLexer(lines, parent=self)
+ pkgs = PackagesLexer(lines, parent=self.packages)
self.packages.inherit(pkgs)
def parse_quality_agent(self):
raw = True,
)
- qa = QualityAgentLexer(lines, parent=self)
+ qa = QualityAgentLexer(lines, parent=self.quality_agent)
self.quality_agent.inherit(qa)