微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

具有Argo工作流程的Jinja模板

如何解决具有Argo工作流程的Jinja模板

我有一个与Argo Workflow和JINJA模板有关的查询

我知道Argo工作流程支持JINJA模板,用于诸如{{...}}, 但是Argo工作流程是否还支持JINJA模板控制结构,例如:{%...%} ........?

我在一个用例中挣扎,我需要在“单一” WorkflowTemplate中添加以下语句

import dash
import dash_table
import pandas as pd
from jupyter_dash import JupyterDash
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input,Output


# data
#df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/solar.csv')

df = pd.DataFrame(np.array([["good","good"],["bad","perfect"],["perfect","good"]]),columns=['after','before'])
a = np.unique(df.to_numpy())
df = pd.crosstab(df['before'],df['after']).reindex(columns=a,index=a,fill_value=0)#.reset_index()

#df = df.reset_index(level=['after','before'])
iname = df.index.name
cname = df.columns.name
df = df.reset_index()
df.rename(columns={df.columns[0]: iname + ' / ' + cname},inplace=True)

app = JupyterDash(__name__)

app.layout = dash_table.DataTable(
    id='table',columns=[{"name": i,"id": i} for i in df.columns],data=df.to_dict('records'),)

if __name__ == '__main__':
    app.run_server(debug=True)

app.run_server(mode='inline',port = 8077,dev_tools_ui=True,dev_tools_hot_reload =True,threaded=True)

解决方法

Argo工作流程does not currently support Jinja control structures

如果您可以进行少量代码重复,那么一种解决方法是使用conditionals来实现gpu == 1gpu != 1分支(以不同的步骤进行)。

您也可以使用podSpecPatch。它是要应用到pod规范的补丁程序的JSON字符串表示形式。对于该JSON中的简单变体,您可以使用Jinja字符串模板。对于更复杂的变异,您可以一步一步生成JSON,然后将其用作输出参数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。