/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { useI18n } from 'vue-i18n' import type { IJsonItem } from '../types' import { watch, ref } from 'vue' import { useCustomParams, useResources } from '.' export function usePytorch(model: { [field: string]: any }): IJsonItem[] { const { t } = useI18n() const isCreateEnvironmentSpan = ref(0) const pythonPathSpan = ref(0) const pythonEnvToolSpan = ref(0) const pythonCommandSpan = ref(0) const requirementsSpan = ref(0) const condaPythonVersionSpan = ref(0) const setFlag = () => { model.showCreateEnvironment = model.isCreateEnvironment && model.otherParams model.showCreateConda = model.showCreateEnvironment && model.pythonEnvTool === 'conda' ? true : false model.showCreateEnv = model.showCreateEnvironment && model.pythonEnvTool === 'virtualenv' ? true : false } const resetSpan = () => { isCreateEnvironmentSpan.value = model.otherParams ? 12 : 0 pythonPathSpan.value = model.otherParams ? 24 : 0 pythonEnvToolSpan.value = model.showCreateEnvironment ? 12 : 0 pythonCommandSpan.value = ~model.showCreateEnvironment & model.otherParams ? 12 : 0 requirementsSpan.value = model.showCreateEnvironment ? 24 : 0 condaPythonVersionSpan.value = model.showCreateConda ? 24 : 0 } watch( () => [model.isCreateEnvironment, model.pythonEnvTool, model.otherParams], () => { setFlag() resetSpan() } ) return [ { type: 'input', field: 'script', name: t('project.node.pytorch_script'), span: 24 }, { type: 'input', field: 'scriptParams', name: t('project.node.pytorch_script_params'), span: 24 }, { type: 'switch', field: 'otherParams', name: t('project.node.pytorch_other_params'), span: 24 }, { type: 'input', field: 'pythonPath', name: t('project.node.pytorch_python_path'), span: pythonPathSpan }, { type: 'switch', field: 'isCreateEnvironment', name: t('project.node.pytorch_is_create_environment'), span: isCreateEnvironmentSpan }, { type: 'input', field: 'pythonCommand', name: t('project.node.pytorch_python_command'), span: pythonCommandSpan, props: { placeholder: t('project.node.pytorch_python_command_tips') } }, { type: 'select', field: 'pythonEnvTool', name: t('project.node.pytorch_python_env_tool'), span: pythonEnvToolSpan, options: PYTHON_ENV_TOOL }, { type: 'input', field: 'requirements', name: t('project.node.pytorch_requirements'), span: requirementsSpan }, { type: 'input', field: 'condaPythonVersion', name: t('project.node.pytorch_conda_python_version'), span: condaPythonVersionSpan, props: { placeholder: t('project.node.pytorch_conda_python_version_tips') } }, useResources(), ...useCustomParams({ model, field: 'localParams', isSimple: false }) ] } export const PYTHON_ENV_TOOL = [ { label: 'conda', value: 'conda' }, { label: 'virtualenv', value: 'virtualenv' } ]