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

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

Issue 521453003: Docserver: Override Walk in CachingFileSystem (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 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 posixpath 5 import posixpath
6 6
7 from compiled_file_system import SingleFile, Unicode 7 from compiled_file_system import Cache, SingleFile, Unicode
8 from extensions_paths import API_PATHS 8 from extensions_paths import API_PATHS
9 from features_bundle import HasParent, GetParentName 9 from features_bundle import HasParent, GetParentName
10 from file_system import FileNotFoundError 10 from file_system import FileNotFoundError
11 from future import All, Future 11 from future import All, Future
12 from operator import itemgetter 12 from operator import itemgetter
13 from platform_util import PlatformToExtensionType 13 from platform_util import PlatformToExtensionType
14 from schema_util import ProcessSchema 14 from schema_util import ProcessSchema
15 from third_party.json_schema_compiler.json_schema import DeleteNodes 15 from third_party.json_schema_compiler.json_schema import DeleteNodes
16 from third_party.json_schema_compiler.model import Namespace, UnixName 16 from third_party.json_schema_compiler.model import Namespace, UnixName
17 17
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 compiled_fs_factory, 56 compiled_fs_factory,
57 file_system, 57 file_system,
58 object_store_creator, 58 object_store_creator,
59 platform): 59 platform):
60 self._features_bundle = features_bundle 60 self._features_bundle = features_bundle
61 self._platform = PlatformToExtensionType(platform) 61 self._platform = PlatformToExtensionType(platform)
62 self._model_cache = compiled_fs_factory.Create( 62 self._model_cache = compiled_fs_factory.Create(
63 file_system, self._CreateAPIModel, APIModels, category=self._platform) 63 file_system, self._CreateAPIModel, APIModels, category=self._platform)
64 self._object_store = object_store_creator.Create(APIModels) 64 self._object_store = object_store_creator.Create(APIModels)
65 65
66 @Cache
66 @SingleFile 67 @SingleFile
67 @Unicode 68 @Unicode
68 def _CreateAPIModel(self, path, data): 69 def _CreateAPIModel(self, path, data):
69 def does_not_include_platform(node): 70 def does_not_include_platform(node):
70 return ('extension_types' in node and 71 return ('extension_types' in node and
71 node['extension_types'] != 'all' and 72 node['extension_types'] != 'all' and
72 self._platform not in node['extension_types']) 73 self._platform not in node['extension_types'])
73 74
74 schema = ProcessSchema(path, data)[0] 75 schema = ProcessSchema(path, data)[0]
75 if not schema: 76 if not schema:
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 176
176 def IterModels(self): 177 def IterModels(self):
177 future_models = [(name, self.GetModel(name)) for name in self.GetNames()] 178 future_models = [(name, self.GetModel(name)) for name in self.GetNames()]
178 for name, future_model in future_models: 179 for name, future_model in future_models:
179 try: 180 try:
180 model = future_model.Get() 181 model = future_model.Get()
181 except FileNotFoundError: 182 except FileNotFoundError:
182 continue 183 continue
183 if model: 184 if model:
184 yield name, model 185 yield name, model
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698