From bee832994bdf28447eec8512571066a8a71e153d Mon Sep 17 00:00:00 2001 From: shaohuzhang1 Date: Thu, 22 Aug 2024 11:48:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E5=BA=93=E8=BE=93=E5=85=A5=E5=8F=82=E6=95=B0=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?,=E6=90=9C=E7=B4=A2=E5=87=BD=E6=95=B0=E5=A4=B1=E8=B4=A5,?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=87=BD=E6=95=B0=E6=8F=8F=E8=BF=B0=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/common/util/function_code.py | 5 ++-- apps/dataset/models/data_set.py | 1 - .../serializers/function_lib_serializer.py | 23 +++++++++++++------ 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/apps/common/util/function_code.py b/apps/common/util/function_code.py index 9aeb66c09..31ab0ce01 100644 --- a/apps/common/util/function_code.py +++ b/apps/common/util/function_code.py @@ -9,12 +9,12 @@ import os import subprocess import sys -import time import uuid from textwrap import dedent from diskcache import Cache +from smartdoc.const import BASE_DIR from smartdoc.const import PROJECT_DIR python_directory = sys.executable @@ -81,10 +81,11 @@ except Exception as e: with open(exec_python_file, 'w') as file: file.write(_code) os.system(f"chown {self.user}:{self.user} {exec_python_file}") + kwargs = {'cwd': BASE_DIR} subprocess_result = subprocess.run( ['su', '-c', python_directory + ' ' + exec_python_file, self.user], text=True, - capture_output=True) + capture_output=True, **kwargs) os.remove(exec_python_file) return subprocess_result diff --git a/apps/dataset/models/data_set.py b/apps/dataset/models/data_set.py index eaf2a0779..e1e018891 100644 --- a/apps/dataset/models/data_set.py +++ b/apps/dataset/models/data_set.py @@ -9,7 +9,6 @@ import uuid from django.db import models -from django.db.models import QuerySet from common.db.sql_execute import select_one from common.mixins.app_model_mixin import AppModelMixin diff --git a/apps/function_lib/serializers/function_lib_serializer.py b/apps/function_lib/serializers/function_lib_serializer.py index 4e8566cf6..468b07bd2 100644 --- a/apps/function_lib/serializers/function_lib_serializer.py +++ b/apps/function_lib/serializers/function_lib_serializer.py @@ -57,11 +57,14 @@ class DebugInstance(serializers.Serializer): class EditFunctionLib(serializers.Serializer): - name = serializers.CharField(required=False, error_messages=ErrMessage.char("函数名称")) + name = serializers.CharField(required=False, allow_null=True, allow_blank=True, + error_messages=ErrMessage.char("函数名称")) - desc = serializers.CharField(required=False, error_messages=ErrMessage.char("函数描述")) + desc = serializers.CharField(required=False, allow_null=True, allow_blank=True, + error_messages=ErrMessage.char("函数描述")) - code = serializers.CharField(required=False, error_messages=ErrMessage.char("函数内容")) + code = serializers.CharField(required=False, allow_null=True, allow_blank=True, + error_messages=ErrMessage.char("函数内容")) input_field_list = FunctionLibInputField(required=False, many=True) @@ -90,9 +93,9 @@ class FunctionLibSerializer(serializers.Serializer): def get_query_set(self): query_set = QuerySet(FunctionLib).filter(user_id=self.data.get('user_id')) if self.data.get('name') is not None: - query_set = query_set.filter(name=self.data.get('name')) + query_set = query_set.filter(name__contains=self.data.get('name')) if self.data.get('desc') is not None: - query_set = query_set.filter(name=self.data.get('desc')) + query_set = query_set.filter(desc__contains=self.data.get('desc')) query_set = query_set.order_by("-create_time") return query_set @@ -158,9 +161,15 @@ class FunctionLibSerializer(serializers.Serializer): if _type == 'float': return float(value) if _type == 'dict': - return json.loads(value) + v = json.loads(value) + if isinstance(v, dict): + return v + raise Exception("类型错误") if _type == 'array': - return json.loads(value) + v = json.loads(value) + if isinstance(v, list): + return v + raise Exception("类型错误") return value except Exception as e: raise AppApiException(500, f'字段:{name}类型:{_type}值:{value}类型转换错误')