code: def iterfiles(self, pattern=None, abspath=False):
          
          if pattern is not None:
              globster = Globster([pattern])
          for root, dirs, files in self.walk():
              for f in files:
                  if pattern is None or (pattern is not None and globster.match(f)):
                      if abspath:
                          yield os.path.join(root, f)
                      else:
                          yield self.relpath(os.path.join(root, f))
docs: Generator for all the files not excluded recursively.
  
          Return relative path.
  
          :type pattern: str
          :param pattern: Unix style (glob like/gitignore like) pattern