15
15
16
16
from datetime import datetime
17
17
from enum import Enum
18
- from tracemalloc import start
19
18
from typing import Optional , Union , List , Dict
20
19
21
20
from sagemaker .lineage ._utils import get_resource_name_from_arn
@@ -271,22 +270,24 @@ def _import_visual_modules(self):
271
270
return cyto , JupyterDash , html
272
271
273
272
def _get_verts (self ):
274
- """Convert vertices to tuple format for visualizer"""
273
+ """Convert vertices to tuple format for visualizer. """
275
274
verts = []
276
275
for vert in self .vertices :
277
- verts .append ((vert .arn , vert .lineage_source , vert .lineage_entity ))
276
+ if vert .arn in self .startarn :
277
+ verts .append ((vert .arn , vert .lineage_source , vert .lineage_entity + " startarn" ))
278
+ else :
279
+ verts .append ((vert .arn , vert .lineage_source , vert .lineage_entity ))
278
280
return verts
279
281
280
282
def _get_edges (self ):
281
- """Convert edges to tuple format for visualizer"""
283
+ """Convert edges to tuple format for visualizer. """
282
284
edges = []
283
285
for edge in self .edges :
284
286
edges .append ((edge .source_arn , edge .destination_arn , edge .association_type ))
285
287
return edges
286
288
287
289
def visualize (self ):
288
290
"""Visualize lineage query result."""
289
-
290
291
cyto , JupyterDash , html = self ._import_visual_modules ()
291
292
292
293
cyto .load_extra_layouts () # load "klay" layout (hierarchical layout) from extra layouts
@@ -297,17 +298,11 @@ def visualize(self):
297
298
edges = self ._get_edges ()
298
299
299
300
nodes = [
300
- {
301
- "data" : {"id" : id , "label" : label },
302
- "classes" : classes
303
- }
304
- for id , label , classes in verts
301
+ {"data" : {"id" : id , "label" : label }, "classes" : classes } for id , label , classes in verts
305
302
]
306
303
307
304
edges = [
308
- {
309
- "data" : {"source" : source , "target" : target , "label" : label }
310
- }
305
+ {"data" : {"source" : source , "target" : target , "label" : label }}
311
306
for source , target , label in edges
312
307
]
313
308
@@ -322,13 +317,13 @@ def visualize(self):
322
317
layout = {"name" : "klay" },
323
318
stylesheet = [
324
319
{
325
- "selector" : "node" ,
320
+ "selector" : "node" ,
326
321
"style" : {
327
- "label" : "data(label)" ,
328
- "font-size" : "3.5vw" ,
322
+ "label" : "data(label)" ,
323
+ "font-size" : "3.5vw" ,
329
324
"height" : "10vw" ,
330
- "width" : "10vw"
331
- }
325
+ "width" : "10vw" ,
326
+ },
332
327
},
333
328
{
334
329
"selector" : "edge" ,
@@ -344,33 +339,14 @@ def visualize(self):
344
339
"target-arrow-color" : "gray" ,
345
340
"target-arrow-shape" : "triangle" ,
346
341
"line-color" : "gray" ,
347
- "arrow-scale" : "0.5"
342
+ "arrow-scale" : "0.5" ,
348
343
},
349
344
},
350
- {
351
- "selector" : ".Artifact" ,
352
- "style" : {
353
- "background-color" : "#146eb4"
354
- }
355
- },
356
- {
357
- "selector" : ".Context" ,
358
- "style" : {
359
- "background-color" : "#ff9900"
360
- }
361
- },
362
- {
363
- "selector" : ".TrialComponent" ,
364
- "style" : {
365
- "background-color" : "#f6cf61"
366
- }
367
- },
368
- {
369
- "selector" : ".Action" ,
370
- "style" : {
371
- "background-color" : "#88c396"
372
- }
373
- }
345
+ {"selector" : ".Artifact" , "style" : {"background-color" : "#146eb4" }},
346
+ {"selector" : ".Context" , "style" : {"background-color" : "#ff9900" }},
347
+ {"selector" : ".TrialComponent" , "style" : {"background-color" : "#f6cf61" }},
348
+ {"selector" : ".Action" , "style" : {"background-color" : "#88c396" }},
349
+ {"selector" : ".startarn" , "style" : {"shape" : "star" }},
374
350
],
375
351
responsive = True ,
376
352
)
0 commit comments