airspeed-0.5.2dev_20150417 seems to not always be able to find variables in namespace.
airspeed-0.4.2dev_20141218 works fine.
The namespace dictionary contains the 'assembly' key.
In some cases everything worked fine (airspeed-0.5.2dev_20150417) when generating the output
files, in others (namespace dictionary contains some larger objects) it gave the following crash.
template_base_folder = os.path.dirname(template_filename)
with open(template_filename, 'r') as input_fh:
template = airspeed.Template(input_fh.read())
output_fh.write(str(template.merge(namespace, loader=airspeed.CachingFileLoader(template_base_folder))))
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 70, in merge
self.merge_to(namespace, output, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 81, in merge_to
self.root_element.evaluate(fileobj, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 1175, in evaluate_raw
self.block.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 1203, in evaluate_raw
child.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 917, in evaluate_raw
self.block.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 1203, in evaluate_raw
child.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 1159, in evaluate_raw
self.block.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 1203, in evaluate_raw
child.evaluate(stream, namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 335, in evaluate
TemplateExecutionError(self, exc_info), exc_info[2])
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 329, in evaluate
return self.evaluate_raw(*args)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 698, in evaluate_raw
value = self.expression.calculate(namespace, loader)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 633, in calculate
value = self.part.calculate(namespace, loader, global_namespace)
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 579, in calculate
result = current_object[self.name]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
...
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 213, in __getitem__
return self.parent[key]
File "/virtenv/local/lib/python2.7/site-packages/airspeed-0.5.2dev_20150417-py2.7.egg/airspeed/__init__.py", line 211, in __getitem__
return dict.__getitem__(self, key)
TemplateExecutionError: Error in template '<string>' at position 1487-1498 in expression: ${assembly}
RuntimeError: maximum recursion depth exceeded
When reverting back to airspeed-0.4.2dev_20141218 (which I used before) everything works fine.
I tried to isolate a test case with the contents of namespace dictionary that causes the crash, but in
the isolated case it worked.