@@ -1279,55 +1279,58 @@ def export_graph(graph_in,
1279
1279
base_dir = os .getcwd ()
1280
1280
1281
1281
makedirs (base_dir , exist_ok = True )
1282
- outfname = fname_presuffix (
1282
+ out_dot = fname_presuffix (
1283
1283
dotfilename , suffix = '_detailed.dot' , use_ext = False , newpath = base_dir )
1284
- _write_detailed_dot (graph , outfname )
1285
- if format != 'dot' :
1286
- cmd = 'dot -T%s -O %s' % ( format , outfname )
1287
- res = CommandLine (
1288
- cmd , terminal_output = 'allatonce' , resource_monitor = False ). run ()
1289
- if res .runtime .returncode :
1290
- logger . warning ( 'dot2png: %s' , res . runtime . stderr )
1284
+ _write_detailed_dot (graph , out_dot )
1285
+
1286
+ # Convert .dot if format ! = 'dot'
1287
+ outfname , res = _run_dot ( out_dot , format_ext = format )
1288
+ if res is not None and res . runtime . returncode :
1289
+ logger . warning ( 'dot2png: %s' , res .runtime .stderr )
1290
+
1291
1291
pklgraph = _create_dot_graph (graph , show_connectinfo , simple_form )
1292
- simplefname = fname_presuffix (
1292
+ simple_dot = fname_presuffix (
1293
1293
dotfilename , suffix = '.dot' , use_ext = False , newpath = base_dir )
1294
- nx .drawing .nx_pydot .write_dot (pklgraph , simplefname )
1295
- if format != 'dot' :
1296
- cmd = 'dot -T%s -O %s' % ( format , simplefname )
1297
- res = CommandLine (
1298
- cmd , terminal_output = 'allatonce' , resource_monitor = False ). run ()
1299
- if res .runtime .returncode :
1300
- logger . warning ( 'dot2png: %s' , res . runtime . stderr )
1294
+ nx .drawing .nx_pydot .write_dot (pklgraph , simple_dot )
1295
+
1296
+ # Convert .dot if format ! = 'dot'
1297
+ simplefname , res = _run_dot ( simple_dot , format_ext = format )
1298
+ if res is not None and res . runtime . returncode :
1299
+ logger . warning ( 'dot2png: %s' , res .runtime .stderr )
1300
+
1301
1301
if show :
1302
1302
pos = nx .graphviz_layout (pklgraph , prog = 'dot' )
1303
1303
nx .draw (pklgraph , pos )
1304
1304
if show_connectinfo :
1305
1305
nx .draw_networkx_edge_labels (pklgraph , pos )
1306
1306
1307
- if format != 'dot' :
1308
- outfname += '.%s' % format
1309
- simplefname += '.%s' % format
1310
1307
return simplefname if simple_form else outfname
1311
1308
1312
1309
1313
1310
def format_dot (dotfilename , format = 'png' ):
1314
1311
"""Dump a directed graph (Linux only; install via `brew` on OSX)"""
1315
- if format != 'dot' :
1316
- dot_base = os .path .splitext (dotfilename )[0 ]
1317
- formatted_dot = '{}.{}' .format (dot_base , format )
1318
- cmd = 'dot -T{} -o"{}" "{}"' .format (format , formatted_dot , dotfilename )
1319
- try :
1320
- CommandLine (cmd , resource_monitor = False ).run ()
1321
- except IOError as ioe :
1322
- if "could not be found" in str (ioe ):
1323
- raise IOError ("Cannot draw directed graph; executable 'dot' is unavailable" )
1324
- else :
1325
- raise ioe
1326
- else :
1327
- formatted_dot = dotfilename
1312
+ try :
1313
+ formatted_dot , _ = _run_dot (dotfilename , format_ext = format )
1314
+ except IOError as ioe :
1315
+ if "could not be found" in str (ioe ):
1316
+ raise IOError ("Cannot draw directed graph; executable 'dot' is unavailable" )
1317
+ else :
1318
+ raise ioe
1328
1319
return formatted_dot
1329
1320
1330
1321
1322
+ def _run_dot (dotfilename , format_ext ):
1323
+ if format_ext == 'dot' :
1324
+ return dotfilename , None
1325
+
1326
+ dot_base = os .path .splitext (dotfilename )[0 ]
1327
+ formatted_dot = '{}.{}' .format (dot_base , format )
1328
+ cmd = 'dot -T{} -o"{}" "{}"' .format (format , formatted_dot , dotfilename )
1329
+ res = CommandLine (cmd , terminal_output = 'allatonce' ,
1330
+ resource_monitor = False ).run ()
1331
+ return formatted_dot , res
1332
+
1333
+
1331
1334
def get_all_files (infile ):
1332
1335
files = [infile ]
1333
1336
if infile .endswith (".img" ):
0 commit comments