dvc show pipeline: small changes

This commit is contained in:
Dmitry
2017-09-18 01:16:10 -07:00
parent 80271928f0
commit f0eb59a722
2 changed files with 14 additions and 9 deletions
+12 -7
View File
@@ -2,6 +2,7 @@ import os
import networkx as nx
from dvc.command.traverse import Traverse
from dvc.command.init import CmdInit
from dvc.logger import Logger
from dvc.state_file import StateFile
@@ -12,11 +13,12 @@ class CmdShowPipeline(Traverse):
self.g = nx.DiGraph()
self.subs = []
def draw(self, g, target, fname):
def draw(self, g, target, fname_suffix):
fname = 'pipeline_' + fname_suffix
try:
A = nx.nx_agraph.to_agraph(g)
A.write(fname + '.dot')
A.draw(fname + '.svg', prog='dot')
A.draw(fname + '.jpeg', format='jpeg', prog='dot')
except Exception as exc:
Logger.error('Failed to draw dependency graph for {}: {}'.format(target, exc))
return 1
@@ -30,16 +32,16 @@ class CmdShowPipeline(Traverse):
return self.g
def draw_targets(self):
if self.parsed_args.target == None:
def draw_targets(self, target):
if not target:
target = self.settings.config.data_dir
return self.draw(self.g, target, target)
for t in self.parsed_args.target:
fname = os.path.basename(os.path.normpath(t))
fname_suffix = os.path.basename(os.path.normpath(t))
s = self.find_sub(t)
ret = self.draw(s, t, fname)
ret = self.draw(s, t, fname_suffix)
if ret != 0:
return ret
@@ -61,13 +63,16 @@ class CmdShowPipeline(Traverse):
# when a bunch of data items were used independently.
self.subs = nx.weakly_connected_component_subgraphs(self.g)
return self.draw_targets()
return self.draw_targets(saved_targets)
def process_file(self, target):
data_item = self._get_data_item(target)
name = data_item.data.relative
state = StateFile.load(data_item.state.relative, self.git)
if name == os.path.join(self.settings.config.data_dir, CmdInit.EMPTY_FILE_NAME):
return
self.g.add_node(name)
for i in state.input_files:
+2 -2
View File
@@ -124,10 +124,10 @@ class Workflow(object):
g.add_edge(commit.hash, p)
A = nx.nx_agraph.to_agraph(g)
fname = 'workflow.jpeg'
fname = 'workflow'
A = A.to_undirected()
A.write(fname + '.dot')
A.draw(fname, format='jpeg', prog='dot')
A.draw(fname + '.jpeg', format='jpeg', prog='dot')
pass
def modify_workflow(self, show_all_commits, show_dvc_commits):