blob: 55f5e6a66a72145abf5a7786147b609b81ad5023 [file] [log] [blame]
import os
import yaml
from .namedelement import NamedElement
from .renderer import Renderer
class Error(NamedElement, Renderer):
@staticmethod
def load(name, rootdir='.'):
filename = os.path.join(rootdir,
name.replace('.', '/') + ".errors.yaml")
with open(filename) as f:
data = f.read()
y = yaml.safe_load(data)
y = {'name': name,
'errors': y}
return Error(**y)
def __init__(self, **kwargs):
self.errors = \
[NamedElement(**n) for n in kwargs.pop('errors', [])]
super(Error, self).__init__(**kwargs)
def exception_header(self, loader):
return self.render(loader, "error.mako.hpp", error=self)
def exception_cpp(self, loader):
return self.render(loader, "error.mako.cpp", error=self)