Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1339)

Side by Side Diff: chrome/common/extensions/docs/server2/compiled_file_system.py

Issue 151883009: Docserver: Make MockFileSystem not iterate over the entire file system as part (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: yoz and then some Created 6 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 Gettable, Future 10 from future import Gettable, Future
11 from path_util import ToDirectory
11 from third_party.handlebar import Handlebar 12 from third_party.handlebar import Handlebar
12 from third_party.json_schema_compiler import json_parse 13 from third_party.json_schema_compiler import json_parse
13 from third_party.json_schema_compiler.memoize import memoize 14 from third_party.json_schema_compiler.memoize import memoize
14 15
15 16
16 _SINGLE_FILE_FUNCTIONS = set() 17 _SINGLE_FILE_FUNCTIONS = set()
17 18
18 19
19 def SingleFile(fn): 20 def SingleFile(fn):
20 '''A decorator which can be optionally applied to the compilation function 21 '''A decorator which can be optionally applied to the compilation function
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 def resolve(): 219 def resolve():
219 cache_data = self._compilation_function(path, future_files.Get()) 220 cache_data = self._compilation_function(path, future_files.Get())
220 self._file_object_store.Set(path, _CacheEntry(cache_data, version)) 221 self._file_object_store.Set(path, _CacheEntry(cache_data, version))
221 return cache_data 222 return cache_data
222 return Future(delegate=Gettable(resolve)) 223 return Future(delegate=Gettable(resolve))
223 224
224 def GetFromFileListing(self, path): 225 def GetFromFileListing(self, path):
225 '''Calls |compilation_function| on the listing of the files at |path|. 226 '''Calls |compilation_function| on the listing of the files at |path|.
226 Assumes that the path given is to a directory. 227 Assumes that the path given is to a directory.
227 ''' 228 '''
228 if not path.endswith('/'): 229 # TODO(kalman): assert IsDirectory(path)
229 path += '/' 230 path = ToDirectory(path)
230 231
231 try: 232 try:
232 version = self._file_system.Stat(path).version 233 version = self._file_system.Stat(path).version
233 except FileNotFoundError: 234 except FileNotFoundError:
234 return Future(exc_info=sys.exc_info()) 235 return Future(exc_info=sys.exc_info())
235 236
236 cache_entry = self._list_object_store.Get(path).Get() 237 cache_entry = self._list_object_store.Get(path).Get()
237 if (cache_entry is not None) and (version == cache_entry.version): 238 if (cache_entry is not None) and (version == cache_entry.version):
238 return Future(value=cache_entry._cache_data) 239 return Future(value=cache_entry._cache_data)
239 240
(...skipping 10 matching lines...) Expand all
250 return cache_entry.version 251 return cache_entry.version
251 return self._file_system.Stat(path).version 252 return self._file_system.Stat(path).version
252 253
253 def GetFileListingVersion(self, path): 254 def GetFileListingVersion(self, path):
254 if not path.endswith('/'): 255 if not path.endswith('/'):
255 path += '/' 256 path += '/'
256 cache_entry = self._list_object_store.Get(path).Get() 257 cache_entry = self._list_object_store.Get(path).Get()
257 if cache_entry is not None: 258 if cache_entry is not None:
258 return cache_entry.version 259 return cache_entry.version
259 return self._file_system.Stat(path).version 260 return self._file_system.Stat(path).version
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698