+ def __iter__(self):
+ return self._iterate_file(self.__filename)
+
+class DirectoryParser(CrontabParser):
+
+ def __init__(self, dirname, recursive=False):
+ self.__dirname = dirname
+ self.__recursive = recursive
+ super(DirectoryParser, self).__init__(None)
+
+ def _dirwalker_plain(self):
+ for i in os.listdir(self.__dirname):
+ if os.path.isfile(i):
+ yield i
+
+ def _dirwalker_recursive(self):
+ for r, d, f in os.walk(self.__dirname):
+ for i in f:
+ yield i
+
+ def __iter__(self):
+
+ if self.__recursive:
+ dirwalker = self._dirwalker_recursive
+ else:
+ dirwalker = self._dirwalker_plain
+
+ for fname in dirwalker():
+ fullname = os.path.join(self.__dirname, fname)
+ self.__filename = fullname
+ for item in self._iterate_file(fullname):
+ yield item
+