From 76e6742b253374a5a813542b5d21bcd565a07de0 Mon Sep 17 00:00:00 2001 From: helmutm Date: Wed, 12 Mar 2008 13:01:57 +0000 Subject: [PATCH] added integrator package: transparent access to filesystem directories and files git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2442 fd906abe-77d9-0310-91a1-e0d9ade77398 --- integrator/README.txt | 2 +- integrator/base.py | 4 ++++ integrator/filesystem.py | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) 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]