55import logging
66from pathlib import Path
77from pydantic import BaseModel , create_model , ConfigDict
8- from typing import Any , List , Dict , Union
8+ from typing import Any , List , Dict , Union , Optional
99import rdflib
1010from Settings import auto_config as cfg
1111
@@ -97,12 +97,12 @@ def generate_pydantic(model_name: str, node_dict: Dict) -> type[BaseModel]:
9797 if children :
9898 sub_model = generate_pydantic (f"{ field_name } Model" , children )
9999 if field_type_str == 'object_list' :
100- fields [field_name ] = (List [sub_model ], ... )
100+ fields [field_name ] = (Optional [ List [sub_model ]], None )
101101 else :
102- fields [field_name ] = (sub_model , ... )
102+ fields [field_name ] = (Optional [ sub_model ], None )
103103 else :
104104 python_type = TYPE_MAP .get (field_type_str , Any )
105- fields [field_name ] = (python_type , ... )
105+ fields [field_name ] = (Optional [ python_type ], None )
106106 return create_model (model_name , ** fields , __config__ = ConfigDict (extra = 'allow' ))
107107
108108 return generate_pydantic (name , tree )
0 commit comments