| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import sys | 5 import sys |
| 6 | 6 |
| 7 import schema_util | 7 import schema_util |
| 8 from docs_server_utils import ToUnicode | 8 from docs_server_utils import ToUnicode |
| 9 from file_system import FileNotFoundError | 9 from file_system import FileNotFoundError |
| 10 from future import Future | 10 from future import Future |
| 11 from path_util import AssertIsDirectory, AssertIsFile, ToDirectory | 11 from path_util import AssertIsDirectory, AssertIsFile, ToDirectory |
| 12 from third_party.handlebar import Handlebar | |
| 13 from third_party.json_schema_compiler import json_parse | 12 from third_party.json_schema_compiler import json_parse |
| 14 from third_party.json_schema_compiler.memoize import memoize | 13 from third_party.json_schema_compiler.memoize import memoize |
| 14 from third_party.motemplate import Motemplate |
| 15 | 15 |
| 16 | 16 |
| 17 _SINGLE_FILE_FUNCTIONS = set() | 17 _SINGLE_FILE_FUNCTIONS = set() |
| 18 | 18 |
| 19 | 19 |
| 20 def SingleFile(fn): | 20 def SingleFile(fn): |
| 21 '''A decorator which can be optionally applied to the compilation function | 21 '''A decorator which can be optionally applied to the compilation function |
| 22 passed to CompiledFileSystem.Create, indicating that the function only | 22 passed to CompiledFileSystem.Create, indicating that the function only |
| 23 needs access to the file which is given in the function's callback. When | 23 needs access to the file which is given in the function's callback. When |
| 24 this is the case some optimisations can be done. | 24 this is the case some optimisations can be done. |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 json_parse.Parse(ToUnicode(data))), | 104 json_parse.Parse(ToUnicode(data))), |
| 105 CompiledFileSystem, | 105 CompiledFileSystem, |
| 106 category='json') | 106 category='json') |
| 107 | 107 |
| 108 @memoize | 108 @memoize |
| 109 def ForTemplates(self, file_system): | 109 def ForTemplates(self, file_system): |
| 110 '''Creates a CompiledFileSystem for parsing templates. | 110 '''Creates a CompiledFileSystem for parsing templates. |
| 111 ''' | 111 ''' |
| 112 return self.Create( | 112 return self.Create( |
| 113 file_system, | 113 file_system, |
| 114 SingleFile(lambda path, text: Handlebar(ToUnicode(text), name=path)), | 114 SingleFile(lambda path, text: Motemplate(ToUnicode(text), name=path)), |
| 115 CompiledFileSystem) | 115 CompiledFileSystem) |
| 116 | 116 |
| 117 @memoize | 117 @memoize |
| 118 def ForUnicode(self, file_system): | 118 def ForUnicode(self, file_system): |
| 119 '''Creates a CompiledFileSystem for Unicode text processing. | 119 '''Creates a CompiledFileSystem for Unicode text processing. |
| 120 ''' | 120 ''' |
| 121 return self.Create( | 121 return self.Create( |
| 122 file_system, | 122 file_system, |
| 123 SingleFile(lambda _, text: ToUnicode(text)), | 123 SingleFile(lambda _, text: ToUnicode(text)), |
| 124 CompiledFileSystem, | 124 CompiledFileSystem, |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 240 cache_entry = self._list_object_store.Get(path).Get() | 240 cache_entry = self._list_object_store.Get(path).Get() |
| 241 if cache_entry is not None: | 241 if cache_entry is not None: |
| 242 return cache_entry.version | 242 return cache_entry.version |
| 243 return self._file_system.Stat(path).version | 243 return self._file_system.Stat(path).version |
| 244 | 244 |
| 245 def FileExists(self, path): | 245 def FileExists(self, path): |
| 246 return self._file_system.Exists(path) | 246 return self._file_system.Exists(path) |
| 247 | 247 |
| 248 def GetIdentity(self): | 248 def GetIdentity(self): |
| 249 return self._file_system.GetIdentity() | 249 return self._file_system.GetIdentity() |
| OLD | NEW |