diff --git a/integrator/README.txt b/integrator/README.txt index ff4e43d..fb943de 100644 --- a/integrator/README.txt +++ b/integrator/README.txt @@ -12,7 +12,7 @@ Getting started Let's do some basic set up - >>> from zope import component, interface + >>> from zope import component >>> from cybertools.integrator.tests import testDir >>> from cybertools.integrator.filesystem import ContainerFactory, FileFactory diff --git a/integrator/base.py b/integrator/base.py index 59a99bd..90079b5 100644 --- a/integrator/base.py +++ b/integrator/base.py @@ -38,9 +38,12 @@ class ReadContainer(Contained): implements(IReadContainer) factoryName = 'sample' + __parent__ = None def __init__(self, address, **kw): self.address = address + for k, v in kw.items(): + setattr(self, k, v) @Lazy def fileFactory(self): @@ -85,6 +88,7 @@ class File(object): contentType = None data = None + __parent__ = None def __init__(self, address, contentType, **kw): self.address = address diff --git a/integrator/filesystem.py b/integrator/filesystem.py index 48934f6..3ac7c12 100644 --- a/integrator/filesystem.py +++ b/integrator/filesystem.py @@ -46,7 +46,7 @@ class ReadContainer(ReadContainer): return os.listdir(self.address) def keys(self): - return self.filenames + return [n for n in self.filenames if not n.startswith('.')] def __iter__(self): return iter(self.keys()) @@ -61,9 +61,9 @@ class ReadContainer(ReadContainer): return default path = os.path.join(self.address, key) if os.path.isdir(path): - return self.containerFactory(path) + return self.containerFactory(path, __parent__=self.__parent__) else: - return self.fileFactory(path) + return self.fileFactory(path, __parent__=self.__parent__) def values(self): return [self.get(k) for k in self]