1
- from hayhooks .server .utils .create_valid_type import create_valid_type
2
1
from pandas import DataFrame
3
- from pydantic import BaseModel , create_model , ConfigDict
2
+ from pydantic import BaseModel , ConfigDict , create_model
3
+
4
+ from hayhooks .server .utils .create_valid_type import handle_unsupported_types
4
5
5
6
6
7
class PipelineDefinition (BaseModel ):
@@ -23,13 +24,16 @@ def get_request_model(pipeline_name: str, pipeline_inputs):
23
24
config = ConfigDict (arbitrary_types_allowed = True )
24
25
25
26
for component_name , inputs in pipeline_inputs .items ():
26
-
27
27
component_model = {}
28
28
for name , typedef in inputs .items ():
29
- component_model [name ] = (typedef ["type" ], typedef .get ("default_value" , ...))
30
- request_model [component_name ] = (create_model ('ComponentParams' , ** component_model , __config__ = config ), ...)
29
+ input_type = handle_unsupported_types (typedef ["type" ], {DataFrame : dict })
30
+ component_model [name ] = (
31
+ input_type ,
32
+ typedef .get ("default_value" , ...),
33
+ )
34
+ request_model [component_name ] = (create_model ("ComponentParams" , ** component_model , __config__ = config ), ...)
31
35
32
- return create_model (f' { pipeline_name .capitalize ()} RunRequest' , ** request_model , __config__ = config )
36
+ return create_model (f" { pipeline_name .capitalize ()} RunRequest" , ** request_model , __config__ = config )
33
37
34
38
35
39
def get_response_model (pipeline_name : str , pipeline_outputs ):
@@ -47,10 +51,10 @@ def get_response_model(pipeline_name: str, pipeline_outputs):
47
51
component_model = {}
48
52
for name , typedef in outputs .items ():
49
53
output_type = typedef ["type" ]
50
- component_model [name ] = (create_valid_type (output_type , { DataFrame : dict }), ...)
51
- response_model [component_name ] = (create_model (' ComponentParams' , ** component_model , __config__ = config ), ...)
54
+ component_model [name ] = (handle_unsupported_types (output_type , {DataFrame : dict }), ...)
55
+ response_model [component_name ] = (create_model (" ComponentParams" , ** component_model , __config__ = config ), ...)
52
56
53
- return create_model (f' { pipeline_name .capitalize ()} RunResponse' , ** response_model , __config__ = config )
57
+ return create_model (f" { pipeline_name .capitalize ()} RunResponse" , ** response_model , __config__ = config )
54
58
55
59
56
60
def convert_component_output (component_output ):
0 commit comments