def gather_commands(self):
        """Collect all commands from this ingredient and its sub-ingredients.

        Yields
        ------
        cmd_name: str
            The full (dotted) name of the command.
        cmd: function
            The corresponding captured function.
        """
        for ingredient, _ in self.traverse_ingredients():
            for command_name, command in ingredient.commands.items():
                cmd_name = join_paths(ingredient.path, command_name)
                cmd_name = self.post_process_name(cmd_name, ingredient)
                yield cmd_name, command
Collect all commands from this ingredient and its sub-ingredients.

        Yields
        ------
        cmd_name: str
            The full (dotted) name of the command.
        cmd: function
            The corresponding captured function.
        
sacred/ingredient.py