Skip to content
Snippets Groups Projects
Commit a0abe4ad authored by Christian Dreher's avatar Christian Dreher
Browse files

feature: Implement basic optional dependency resolution.

parent c921df51
No related branches found
No related tags found
1 merge request!1Resolve "Optional dependency support"
......@@ -38,7 +38,7 @@ class ModuleGraph(nx.DiGraph):
if module.name not in self:
self.add_node(module.name, module=module)
# Add dependencies.
# Add required dependencies.
for required_name in module.required_modules:
if required_name not in self:
required_module = Module.load_info(required_name, ws=ws)
......@@ -50,6 +50,12 @@ class ModuleGraph(nx.DiGraph):
required_module = self.nodes[required_name]["module"]
self.add_module(required_module, ws=module.ws)
# Add optional dependencies.
for optional_name in module.optional_modules:
# If the optional dependency is already in the graph, it is a manually set dependency and thus not optional.
if optional_name in self:
self.add_edge(module.name, optional_name)
def visualize(self, no_apt=False):
import matplotlib.pyplot as plt
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment