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

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

Issue 512453002: Docserver: Add more skip_not_found support and cache "not found"s (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 (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 posixpath 5 import posixpath
6 import traceback 6 import traceback
7 7
8 from future import Future 8 from future import Future
9 from path_util import ( 9 from path_util import (
10 AssertIsDirectory, AssertIsValid, IsDirectory, IsValid, SplitParent, 10 AssertIsDirectory, AssertIsValid, IsDirectory, IsValid, SplitParent,
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 - If |skip_not_found| is True, the resulting object will not contain any 77 - If |skip_not_found| is True, the resulting object will not contain any
78 mapping for that path. 78 mapping for that path.
79 - Otherwise, and by default, a FileNotFoundError is raised. This is 79 - Otherwise, and by default, a FileNotFoundError is raised. This is
80 guaranteed to only happen once the Future has been resolved (Get() 80 guaranteed to only happen once the Future has been resolved (Get()
81 called). 81 called).
82 82
83 For any other failure, raises a FileSystemError. 83 For any other failure, raises a FileSystemError.
84 ''' 84 '''
85 raise NotImplementedError(self.__class__) 85 raise NotImplementedError(self.__class__)
86 86
87 def ReadSingle(self, path): 87 def ReadSingle(self, path, skip_not_found=False):
88 '''Reads a single file from the FileSystem. Returns a Future with the same 88 '''Reads a single file from the FileSystem. Returns a Future with the same
89 rules as Read(). If |path| is not found raise a FileNotFoundError on Get(). 89 rules as Read(). If |path| is not found raise a FileNotFoundError on Get().
90 ''' 90 '''
91 AssertIsValid(path) 91 AssertIsValid(path)
92 read_single = self.Read([path]) 92 read_single = self.Read([path], skip_not_found=skip_not_found)
93 return Future(callback=lambda: read_single.Get()[path]) 93 return Future(callback=lambda: read_single.Get().get(path, None))
94 94
95 def Exists(self, path): 95 def Exists(self, path):
96 '''Returns a Future to the existence of |path|; True if |path| exists, 96 '''Returns a Future to the existence of |path|; True if |path| exists,
97 False if not. This method will not throw a FileNotFoundError unlike 97 False if not. This method will not throw a FileNotFoundError unlike
98 the Read* methods, however it may still throw a FileSystemError. 98 the Read* methods, however it may still throw a FileSystemError.
99 99
100 There are several ways to implement this method via the interface but this 100 There are several ways to implement this method via the interface but this
101 method exists to do so in a canonical and most efficient way for caching. 101 method exists to do so in a canonical and most efficient way for caching.
102 ''' 102 '''
103 AssertIsValid(path) 103 AssertIsValid(path)
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 self.GetIdentity() == other.GetIdentity()) 194 self.GetIdentity() == other.GetIdentity())
195 195
196 def __ne__(self, other): 196 def __ne__(self, other):
197 return not (self == other) 197 return not (self == other)
198 198
199 def __repr__(self): 199 def __repr__(self):
200 return '<%s>' % type(self).__name__ 200 return '<%s>' % type(self).__name__
201 201
202 def __str__(self): 202 def __str__(self):
203 return repr(self) 203 return repr(self)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698