def map(self, func, **kwargs):
if kwargs.get('<STR_LIT>', False):<EOL><INDENT>yield self.path, func(self)<EOL><DEDENT>if kwargs.get('<STR_LIT>', True):<EOL><INDENT>for child in self.children.values():<EOL><INDENT>for value in child.map(func, **kwargs):<EOL><INDENT>yield value<EOL><DEDENT><DEDENT><DEDENT>
Generator function returning result of
        `func(self)`

        :param func: callable object
        :keyword recursive: if True, then apply map to every children nodes
        :keyword with_path: whether the yield values is a tuple
        of 2 elements containing report-path and `func(self)` result or
        simply `func(self)` result.

        :rtype: generator