OLD | NEW |
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 from file_system import FileSystem, FileNotFoundError | 5 from file_system import FileSystem, FileNotFoundError |
6 from future import Future | 6 from future import Future |
7 | 7 |
8 | 8 |
9 class OfflineFileSystem(FileSystem): | 9 class OfflineFileSystem(FileSystem): |
10 '''An offline FileSystem which masquerades as another file system. It throws | 10 '''An offline FileSystem which masquerades as another file system. It throws |
11 FileNotFound error for all operations, and overrides GetIdentity. | 11 FileNotFound error for all operations, and overrides GetIdentity. |
12 ''' | 12 ''' |
13 def __init__(self, fs): | 13 def __init__(self, fs): |
14 self._fs = fs | 14 self._fs = fs |
15 | 15 |
16 def Read(self, paths, skip_not_found=False): | 16 def Read(self, paths, skip_not_found=False): |
17 if skip_not_found: return Future(value={}) | 17 if skip_not_found: return Future(value={}) |
18 def raise_file_not_found(): | 18 def raise_file_not_found(): |
19 raise FileNotFoundError('File system is offline, cannot read %s' % paths) | 19 raise FileNotFoundError('File system is offline, cannot read %s' % paths) |
20 return Future(callback=raise_file_not_found) | 20 return Future(callback=raise_file_not_found) |
21 | 21 |
22 def Stat(self, path): | 22 def Stat(self, path): |
23 raise FileNotFoundError('File system is offline, cannot read %s' % path) | 23 raise FileNotFoundError('File system is offline, cannot read %s' % path) |
24 | 24 |
25 def GetIdentity(self): | 25 def GetIdentity(self): |
26 return self._fs.GetIdentity() | 26 return self._fs.GetIdentity() |
| 27 |
| 28 def GetVersion(self): |
| 29 return self._fs.GetVersion() |
OLD | NEW |