I am trying to build a tree like hierarchy from modules and their respective submodules, each module has a name, data, and a list of its submodules,
@dataclass
class module(object):
name: str
data: int
submodules: list = field(default_factory=list)
def main():
module1 = module("Module1", 1, ["Module2", "Module3"])
module2 = module("Module2", 2, ["Module4"])
module3 = module("Module3", 3, ["Module6", "Module7"])
module4 = module("Module4", 4, ["Module5"])
module5 = module("Module5", 5, )
module6 = module("Module6", 6, )
module7 = module("Module7", 7, )
module_list = [module4, module2, module6, module1, module3, module5, module7] #This is just Example Data
for mod in module_list:
for item in module_list:
if mod.name in item.submodules:
print(mod.name + " is submodule of " + item.name)
if __name__ == '__main__':
main()
With this code I'm able to detect if something is a submodule of something else but I don't know how I am supposed to form the connections/build the data structure.
My desired output should look something like this:
module1
├── module2
│ └── module4
│ └── module5
└── module3
├── module6
└── module7
I tried using Anytree and Treelib to achieve this for an arbitrary amount of modules but I could not come up with a working solution. Although this problem looks simple (might not be) I just can not figure it out.
Cheers!
