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 3# found in the LICENSE file. 4 5from file_system import FileNotFoundError, FileSystem, StatInfo 6from future import Future 7 8class EmptyDirFileSystem(FileSystem): 9 '''A FileSystem with empty directories. Useful to inject places to disable 10 features such as samples. 11 ''' 12 def Read(self, paths): 13 result = {} 14 for path in paths: 15 if not path.endswith('/'): 16 raise FileNotFoundError('EmptyDirFileSystem cannot read %s' % path) 17 result[path] = [] 18 return Future(value=result) 19 20 def Refresh(self): 21 return Future(value=()) 22 23 def Stat(self, path): 24 if not path.endswith('/'): 25 raise FileNotFoundError('EmptyDirFileSystem cannot stat %s' % path) 26 return StatInfo(0, child_versions=[]) 27 28 def GetIdentity(self): 29 return self.__class__.__name__ 30