def submodules(self):
        """
        Property to return all sub-modules of the node, recursively.

        Returns:
            list of Module: the sub-modules.
        """
        submodules = []
        submodules.extend(self.modules)
        for p in self.packages:
            submodules.extend(p.submodules)
        return submodules