Disable view source for Developer Tools.
[chromium-blink-merge.git] / chrome / common / extensions / docs / server2 / template_data_source.py
blobaa1ee543038420f497abccacbf7ab6c71a5089da
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import logging
6 import traceback
8 from data_source import DataSource
9 from extensions_paths import PRIVATE_TEMPLATES
10 from file_system import FileNotFoundError
11 from future import Future
14 class TemplateDataSource(DataSource):
15 '''Provides a DataSource interface for compiled templates.
16 '''
18 def __init__(self, server_instance, _, partial_dir=PRIVATE_TEMPLATES):
19 self._template_cache = server_instance.compiled_fs_factory.ForTemplates(
20 server_instance.host_file_system_provider.GetTrunk())
21 self._partial_dir = partial_dir
23 def get(self, path):
24 try:
25 return self._template_cache.GetFromFile('%s/%s.html' %
26 (self._partial_dir, path)).Get()
27 except FileNotFoundError:
28 logging.warning(traceback.format_exc())
29 return None
31 def Cron(self):
32 # TODO(kalman): Implement this; probably by finding all files that can be
33 # compiled to templates underneath |self._partial_dir| and compiling them.
34 return Future(value=())