equal
deleted
inserted
replaced
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 |