# This file is part of Beremiz.
# See COPYING file for copyrights details.
import util.paths as paths
from . structures import StdBlckLibs
from XSLTransform import XSLTransform
ScriptDirectory = paths.AbsDir(__file__)
class XSLTModelQuery(XSLTransform):
""" a class to handle XSLT queries on project and libs """
def __init__(self, controller, xsltpath, ext=None):
# arbitrary set debug to false, updated later
# merge xslt extensions for library access to query specific ones
("GetProject", lambda *_ignored:
[controller.GetProject(self.debug)]),
("GetStdLibs", lambda *_ignored:
[lib for lib in list(StdBlckLibs.values())]),
("GetExtensions", lambda *_ignored:
[ctn["types"] for ctn in controller.ConfNodeTypes])
XSLTransform.__init__(self,
os.path.join(ScriptDirectory, xsltpath),
def _process_xslt(self, root, debug, **kwargs):
return self.transform(root, **kwargs)
# -------------------------------------------------------------------------------
# Helpers functions for translating list of arguments
# from xslt to valid arguments
# -------------------------------------------------------------------------------
return x in ["true", "0"]
def _translate_args(translations, args):
return [translate(arg[0]) if len(arg) > 0 else None