我有一个与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"], ["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)
答案 0 :(得分:0)
Argo工作流程does not currently support Jinja control structures。
如果您可以进行少量代码重复,那么一种解决方法是使用conditionals来实现gpu == 1
和gpu != 1
分支(以不同的步骤进行)。
您也可以使用podSpecPatch
。它是要应用到pod规范的补丁程序的JSON字符串表示形式。对于该JSON中的简单变体,您可以使用Jinja字符串模板。对于更复杂的变异,您可以一步一步生成JSON,然后将其用作输出参数。