Coverage for backend/core/auxiliary/views/GenerateIDAESPython.py: 59%
22 statements
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2025-11-06 23:27 +0000
1from drf_spectacular.utils import extend_schema
2from rest_framework.response import Response
3from rest_framework.decorators import api_view
4from rest_framework import serializers
5from idaes_factory.endpoints import generate_IDAES_python_request
6from core.validation import api_view_validate
8class GenerateIDAESPythonRequestSerializer(serializers.Serializer):
9 flowsheet_id = serializers.IntegerField(required=True)
10 return_json = serializers.BooleanField(required=False, default=False)
13@api_view_validate
14@extend_schema(request=GenerateIDAESPythonRequestSerializer, responses=None)
15@api_view(['POST'])
16def generate_idaes_python(request) -> Response:
17 """Generates IDAES Python code for the given flowsheet"""
19 # Validate the request data
20 try:
21 serializer = GenerateIDAESPythonRequestSerializer(data=request.data)
22 serializer.is_valid(raise_exception=True)
23 validated_data = serializer.validated_data
24 # Use validated data to retrieve objects
25 flowsheet_id = validated_data.get('flowsheet_id')
26 return_json = validated_data.get('return_json', False)
27 except:
28 return Response("Invalid request data", status=400)
30 return generate_IDAES_python_request(flowsheet_id, return_json=return_json)