1
"""Ad-hoc backend for VFS."""
3
from zope.interface import implements
5
from twisted.vfs import ivfs
10
Can contain arbitrary other directories (but not files) as children.
13
implements(ivfs.IFileSystemContainer)
15
def __init__(self, children=None, name=None, parent=None):
16
if not parent : self.parent = self
17
else : self.parent = parent
21
self._children = children
24
return [ ('.', self), ('..', self.parent) ] + [
25
( childName, self.child(childName) )
26
for childName in self._children.keys() ]
28
def child(self, childName):
30
return self._children[childName]
32
raise ivfs.NotFoundError(childName)
34
def getMetadata(self):
37
def exists(self, childName):
38
return self._children.has_key(childName)
40
def putChild(self, name, node):
42
self._children[name] = node
44
def createDirectory(self, childName):
45
# Users cannot add directories to an AdhocDirectory, so raise
47
raise ivfs.PermissionError()
49
def createFile(self, childName, exclusive=True):
50
# AdhocDirectories cannot contain files directly, so give permission
51
# denied if someone tries to create one.
52
raise ivfs.PermissionError()