mercurial/vfs.py
changeset 41093 6498f0e03526
parent 41092 9e593db5f1a1
child 41094 adee334d94cd
equal deleted inserted replaced
41092:9e593db5f1a1 41093:6498f0e03526
   467         else:
   467         else:
   468             return self.base
   468             return self.base
   469 
   469 
   470 opener = vfs
   470 opener = vfs
   471 
   471 
   472 class proxyvfs(object):
   472 class proxyvfs(abstractvfs):
   473     def __init__(self, vfs):
   473     def __init__(self, vfs):
   474         self.vfs = vfs
   474         self.vfs = vfs
   475 
   475 
   476     @property
   476     @property
   477     def options(self):
   477     def options(self):
   479 
   479 
   480     @options.setter
   480     @options.setter
   481     def options(self, value):
   481     def options(self, value):
   482         self.vfs.options = value
   482         self.vfs.options = value
   483 
   483 
   484 class filtervfs(abstractvfs, proxyvfs):
   484 class filtervfs(proxyvfs, abstractvfs):
   485     '''Wrapper vfs for filtering filenames with a function.'''
   485     '''Wrapper vfs for filtering filenames with a function.'''
   486 
   486 
   487     def __init__(self, vfs, filter):
   487     def __init__(self, vfs, filter):
   488         proxyvfs.__init__(self, vfs)
   488         proxyvfs.__init__(self, vfs)
   489         self._filter = filter
   489         self._filter = filter
   497         else:
   497         else:
   498             return self.vfs.join(path)
   498             return self.vfs.join(path)
   499 
   499 
   500 filteropener = filtervfs
   500 filteropener = filtervfs
   501 
   501 
   502 class readonlyvfs(abstractvfs, proxyvfs):
   502 class readonlyvfs(proxyvfs):
   503     '''Wrapper vfs preventing any writing.'''
   503     '''Wrapper vfs preventing any writing.'''
   504 
   504 
   505     def __init__(self, vfs):
   505     def __init__(self, vfs):
   506         proxyvfs.__init__(self, vfs)
   506         proxyvfs.__init__(self, vfs)
   507 
   507