Source code for clink.service.template.template_sv

from string import Template
from datetime import datetime

from clink.type import AppConf, AuthConf, Service
from clink.com import stamp


@stamp(AppConf, AuthConf)
[docs]class TemplateSv(Service): ''' Simple template engine ''' def __init__(self, app_conf, auth_conf): ''' :param AppConf app_conf: :param AuthConf auth_conf: ''' self._base_values = { 'app_name': app_conf.name, 'root_name': 'root', 'root_email': auth_conf.root_email, 'datetime_now': datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S') }
[docs] def build_file(self, file_path, values): ''' Read data from file then build it as a template :param str file_path: :param dict values: :rtype: str ''' f = open(file_path) data = f.read() f.close() return self.build_str(data, values)
[docs] def build_str(self, data, values): ''' Build string template :param str data: :param dict values: :rtype: str ''' values.update(self._base_values) return Template(data).safe_substitute(values)