blob: 934569410eff521bcf33a16ccc63c974622a263d [file] [log] [blame]
# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import logging
import posixpath
import traceback
from data_source import DataSource
from docs_server_utils import FormatKey
from file_system import FileNotFoundError
from svn_constants import PRIVATE_TEMPLATE_PATH
class TemplateDataSource(DataSource):
'''Provides a DataSource interface for compiled templates.
'''
def __init__(self, server_instance, _, partial_dir=PRIVATE_TEMPLATE_PATH):
self._template_cache = server_instance.compiled_fs_factory.ForTemplates(
server_instance.host_file_system_provider.GetTrunk())
self._partial_dir = partial_dir
def get(self, path):
try:
return self._template_cache.GetFromFile('%s/%s.html' %
(self._partial_dir, path)).Get()
except FileNotFoundError:
logging.warning(traceback.format_exc())
return None
def Cron(self):
# TODO(kalman): Implement this; probably by finding all files that can be
# compiled to templates underneath |self._partial_dir| and compiling them.
pass