1*55e87721SMatt Gilbride#!/usr/bin/env python3 2*55e87721SMatt Gilbride# Copyright 2020 Google LLC 3*55e87721SMatt Gilbride# 4*55e87721SMatt Gilbride# Licensed under the Apache License, Version 2.0 (the "License"); 5*55e87721SMatt Gilbride# you may not use this file except in compliance with the License. 6*55e87721SMatt Gilbride# You may obtain a copy of the License at 7*55e87721SMatt Gilbride# 8*55e87721SMatt Gilbride# http://www.apache.org/licenses/LICENSE-2.0 9*55e87721SMatt Gilbride# 10*55e87721SMatt Gilbride# Unless required by applicable law or agreed to in writing, software 11*55e87721SMatt Gilbride# distributed under the License is distributed on an "AS IS" BASIS, 12*55e87721SMatt Gilbride# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*55e87721SMatt Gilbride# See the License for the specific language governing permissions and 14*55e87721SMatt Gilbride# limitations under the License. 15*55e87721SMatt Gilbride 16*55e87721SMatt Gilbridefrom jinja2 import Environment, FileSystemLoader 17*55e87721SMatt Gilbrideimport os 18*55e87721SMatt Gilbrideimport pathlib 19*55e87721SMatt Gilbridefrom typing import List 20*55e87721SMatt Gilbride 21*55e87721SMatt Gilbrideroot_directory = pathlib.Path( 22*55e87721SMatt Gilbride os.path.realpath(os.path.dirname(os.path.realpath(__file__))) 23*55e87721SMatt Gilbride) 24*55e87721SMatt Gilbrideprint(root_directory) 25*55e87721SMatt Gilbridejinja_env = Environment(loader=FileSystemLoader(str(root_directory / "templates"))) 26*55e87721SMatt Gilbride 27*55e87721SMatt Gilbride 28*55e87721SMatt Gilbridedef render(template_name: str, output_name: str, **kwargs): 29*55e87721SMatt Gilbride template = jinja_env.get_template(template_name) 30*55e87721SMatt Gilbride t = template.stream(kwargs) 31*55e87721SMatt Gilbride directory = os.path.dirname(output_name) 32*55e87721SMatt Gilbride if not os.path.isdir(directory): 33*55e87721SMatt Gilbride os.makedirs(directory) 34*55e87721SMatt Gilbride t.dump(str(output_name)) 35