def find_relative_resource(relpath): calculator = find_object_in_stack('self', Calculator) variables = calculator.namespace.variables package = variables.get('$current-package').render().strip('"').strip("'") module = resolve(package) filename = variables.get('$current-relpath').render().strip('"').strip("'") directory = Path(module.__file__).parent.joinpath(filename).parent path = directory.joinpath(relpath.render().strip('"').strip("'")).abspath() if not path.isfile(): raise ValueError('{0}: File does not exist: {1}'.format( filename, path)) return path
def register_theming_variables(*varnames): calculator = find_object_in_stack('self', Calculator) variables = calculator.namespace.variables package = (variables.get('$current-package').render() .strip('"').strip("'")) filename = (variables.get('$current-filename').render() .strip('"').strip("'")) varnames = map(methodcaller('render'), varnames) if package not in packages: packages[package] = [] for name in varnames: name = u'${0}'.format(name) value = variables.get(name, None) vartype = value.__class__.__name__ value = value and value.render or '???' packages[package].append({'filename': filename, 'name': name, 'value': value, 'type': vartype}) return Null()