| 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 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 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 handle) | 114 handle) |
| 115 | 115 |
| 116 def Refresh(self): | 116 def Refresh(self): |
| 117 '''Asynchronously refreshes the content of the FileSystem, returning a | 117 '''Asynchronously refreshes the content of the FileSystem, returning a |
| 118 future to its completion. | 118 future to its completion. |
| 119 ''' | 119 ''' |
| 120 raise NotImplementedError(self.__class__) | 120 raise NotImplementedError(self.__class__) |
| 121 | 121 |
| 122 # TODO(cduvall): Allow Stat to take a list of paths like Read. | 122 # TODO(cduvall): Allow Stat to take a list of paths like Read. |
| 123 def Stat(self, path): | 123 def Stat(self, path): |
| 124 '''Returns a |StatInfo| object containing the version of |path|. If |path| | 124 '''DEPRECATED: Please try to use StatAsync instead. |
| 125 |
| 126 Returns a |StatInfo| object containing the version of |path|. If |path| |
| 125 is a directory, |StatInfo| will have the versions of all the children of | 127 is a directory, |StatInfo| will have the versions of all the children of |
| 126 the directory in |StatInfo.child_versions|. | 128 the directory in |StatInfo.child_versions|. |
| 127 | 129 |
| 128 If the path cannot be found, raises a FileNotFoundError. | 130 If the path cannot be found, raises a FileNotFoundError. |
| 129 For any other failure, raises a FileSystemError. | 131 For any other failure, raises a FileSystemError. |
| 130 ''' | 132 ''' |
| 133 # Delegate to this implementation's StatAsync if it has been implemented. |
| 134 if type(self).StatAsync != FileSystem.StatAsync: |
| 135 return self.StatAsync(path).Get() |
| 131 raise NotImplementedError(self.__class__) | 136 raise NotImplementedError(self.__class__) |
| 132 | 137 |
| 133 def StatAsync(self, path): | 138 def StatAsync(self, path): |
| 134 '''Bandaid for a lack of an async Stat function. Stat() should be async | 139 '''An async version of Stat. Returns a Future to a StatInfo rather than a |
| 135 by default but for now just let implementations override this if they like. | 140 raw StatInfo. |
| 141 |
| 142 This is a bandaid for a lack of an async Stat function. Stat() should be |
| 143 async by default but for now just let implementations override this if they |
| 144 like. |
| 136 ''' | 145 ''' |
| 137 return Future(callback=lambda: self.Stat(path)) | 146 return Future(callback=lambda: self.Stat(path)) |
| 138 | 147 |
| 139 def GetIdentity(self): | 148 def GetIdentity(self): |
| 140 '''The identity of the file system, exposed for caching classes to | 149 '''The identity of the file system, exposed for caching classes to |
| 141 namespace their caches. this will usually depend on the configuration of | 150 namespace their caches. this will usually depend on the configuration of |
| 142 that file system - e.g. a LocalFileSystem with a base path of /var is | 151 that file system - e.g. a LocalFileSystem with a base path of /var is |
| 143 different to that of a SubversionFileSystem with a base path of /bar, is | 152 different to that of a SubversionFileSystem with a base path of /bar, is |
| 144 different to a LocalFileSystem with a base path of /usr. | 153 different to a LocalFileSystem with a base path of /usr. |
| 145 ''' | 154 ''' |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 185 self.GetIdentity() == other.GetIdentity()) | 194 self.GetIdentity() == other.GetIdentity()) |
| 186 | 195 |
| 187 def __ne__(self, other): | 196 def __ne__(self, other): |
| 188 return not (self == other) | 197 return not (self == other) |
| 189 | 198 |
| 190 def __repr__(self): | 199 def __repr__(self): |
| 191 return '<%s>' % type(self).__name__ | 200 return '<%s>' % type(self).__name__ |
| 192 | 201 |
| 193 def __str__(self): | 202 def __str__(self): |
| 194 return repr(self) | 203 return repr(self) |
| OLD | NEW |