def iter_sections(self, recursive=False, path=None, key='path'):
        """
        See :meth:`.iter_all` for standard iterator argument descriptions.

        Returns:
            iterator: iterator over ``(key, section)`` pairs of all sections
                in this section (and sub-sections if ``recursive=True``).

        """
        for x in self.iter_all(recursive=recursive, path=path, key=key):
            if key is None:
                if x.is_section:
                    yield x
            elif x[1].is_section:
                yield x
See :meth:`.iter_all` for standard iterator argument descriptions.

        Returns:
            iterator: iterator over ``(key, section)`` pairs of all sections
                in this section (and sub-sections if ``recursive=True``).