@@ -1051,45 +1051,51 @@ def wait(
10511051 if job_arn_entries :
10521052 links_table = Table (show_header = True , header_style = "bold magenta" , box = None , padding = (0 , 1 ))
10531053 links_table .add_column ("Step" , style = "cyan" , width = 20 )
1054- links_table .add_column ("Job Link" , style = "dim" )
1055- links_table .add_column ("Logs" , style = "dim" )
1056- links_table .add_column ("Job ARN" , style = "dim" , overflow = "fold" )
1054+ links_table .add_column ("Console" , style = "dim" )
10571055 from sagemaker .train .common_utils .metrics_visualizer import (
10581056 _is_in_studio , _parse_job_arn , _get_studio_base_url ,
10591057 get_console_job_url , get_cloudwatch_logs_url ,
10601058 )
10611059 in_studio = _is_in_studio ()
10621060 studio_base = _get_studio_base_url (region ) if in_studio else ""
1061+ if in_studio :
1062+ links_table .add_column ("Studio" , style = "dim" )
1063+ links_table .add_column ("Logs" , style = "dim" )
1064+ links_table .add_column ("Job ARN" , style = "dim" , overflow = "fold" )
10631065 studio_path_map = {
10641066 "training-job/" : "jobs/train/" ,
10651067 "processing-job/" : "jobs/processing/" ,
10661068 "transform-job/" : "jobs/transform/" ,
10671069 }
10681070 for entry in job_arn_entries :
1069- job_link = ""
1071+ console_link = ""
10701072 logs_link = ""
1073+ studio_link = ""
10711074 try :
10721075 arn = entry ['job_arn' ]
1076+ url = get_console_job_url (arn )
1077+ if url :
1078+ console_link = f"[bright_blue underline][link={ url } ]🔗 link[/link][/bright_blue underline]"
1079+ cw_url = get_cloudwatch_logs_url (arn )
1080+ if cw_url :
1081+ logs_link = f"[bright_blue underline][link={ cw_url } ]🔗 logs[/link][/bright_blue underline]"
10731082 if in_studio and studio_base :
10741083 parsed = _parse_job_arn (arn )
10751084 if parsed :
10761085 _ , resource = parsed
10771086 for prefix , path in studio_path_map .items ():
10781087 if resource .startswith (prefix ):
10791088 job_name = resource .split ("/" , 1 )[1 ]
1080- url = f"{ studio_base } /{ path } { job_name } "
1081- job_link = f"[bright_blue underline][link={ url } ]🔗 link [/link][/bright_blue underline]"
1089+ s_url = f"{ studio_base } /{ path } { job_name } "
1090+ studio_link = f"[bright_blue underline][link={ s_url } ]🔗 studio [/link][/bright_blue underline]"
10821091 break
1083- else :
1084- url = get_console_job_url (arn )
1085- if url :
1086- job_link = f"[bright_blue underline][link={ url } ]🔗 link[/link][/bright_blue underline]"
1087- cw_url = get_cloudwatch_logs_url (arn )
1088- if cw_url :
1089- logs_link = f"[bright_blue underline][link={ cw_url } ]🔗 logs[/link][/bright_blue underline]"
10901092 except Exception :
10911093 pass
1092- links_table .add_row (entry ['step_name' ], job_link , logs_link , entry ['job_arn' ])
1094+ row = [entry ['step_name' ], console_link ]
1095+ if in_studio :
1096+ row .append (studio_link )
1097+ row .extend ([logs_link , entry ['job_arn' ]])
1098+ links_table .add_row (* row )
10931099 content_parts .append (Text ("" ))
10941100 content_parts .append (Text ("Job ARNs" , style = "bold magenta" ))
10951101 content_parts .append (links_table )
0 commit comments