Use DummyYaqlYamlLoader to load classes during upload

This commit changes the loader, that loads MuranoPL classes during
package upload to DummyYaqlYamlLoader. This would allow importing and parsing
packages that contain '!yaql' tag without any errors, when importing to
glare.

Change-Id: I9071bb479019cac20bf61f110154082063c9d777
Closes-Bug: #1586028
This commit is contained in:
Kirill Zaitsev 2016-06-02 14:03:09 +03:00
parent b1e8a1753c
commit 369056a1f6
2 changed files with 15 additions and 1 deletions

View File

@ -354,7 +354,8 @@ class Package(FileWrapperMixin):
filename = "Classes/%s" % class_file
if filename not in self.contents.namelist():
continue
klass = yaml.safe_load(self.contents.open(filename))
klass = yaml.load(self.contents.open(filename),
DummyYaqlYamlLoader)
self._classes[class_name] = klass
return self._classes
@ -587,6 +588,14 @@ class Bundle(FileWrapperMixin):
yield pkg_obj
class DummyYaqlYamlLoader(yaml.SafeLoader):
"""Constructor that treats !yaql as string."""
pass
DummyYaqlYamlLoader.add_constructor(
u'!yaql', DummyYaqlYamlLoader.yaml_constructors[u'tag:yaml.org,2002:str'])
class YaqlYamlLoader(yaml.SafeLoader):
pass

View File

@ -0,0 +1,5 @@
---
fixes:
- It is now possible to import packages with '!yaql' tag, when glare
is used as backend. Before this fix, importing such package caused
a parsing error.