@@ -764,6 +764,15 @@ def generate_individual_service(
764764 input_base_class : Literal ["TypedDict" ] | Literal ["BaseModel" ],
765765
766766) -> Tuple [ModuleName , ClassName , dict [RenderedPath , FileContents ]]:
767+ def append_type_adapter_definition (type_adapter_name : TypeName , _type : TypeExpression , module_info : list [ModuleName ]):
768+ serdes .append (
769+ (
770+ [type_adapter_name ],
771+ module_info ,
772+ [f"{ type_adapter_name .value } = TypeAdapter({ render_type_expr (_type )} ) # type: ignore" ]
773+ )
774+ )
775+
767776 serdes : list [Tuple [list [TypeName ], list [ModuleName ], list [FileContents ]]] = []
768777 class_name = ClassName (f"{ schema_name .title ()} Service" )
769778 current_chunks : List [str ] = [
@@ -809,13 +818,7 @@ def __init__(self, client: river.Client[Any]):
809818 input_chunks ,
810819 )
811820 )
812- serdes .append (
813- (
814- [input_type_type_adapter_name ],
815- module_info ,
816- [f"{ input_type_type_adapter_name .value } = TypeAdapter({ render_type_expr (input_type )} ) # type: ignore" ]
817- )
818- )
821+ append_type_adapter_definition (input_type_type_adapter_name , input_type , module_info )
819822 output_type , module_info , output_chunks , encoder_names = encode_type (
820823 procedure .output ,
821824 TypeName (f"{ name .title ()} Output" ),
@@ -832,14 +835,7 @@ def __init__(self, client: river.Client[Any]):
832835 )
833836 )
834837 output_type_type_adapter_name = TypeName (f"{ output_type_name .value } TypeAdapter" )
835- # print('appending %r, %r' % (output_type_type_adapter_name, module_info))
836- serdes .append (
837- (
838- [output_type_type_adapter_name ],
839- module_info ,
840- [f"{ output_type_type_adapter_name .value } = TypeAdapter({ render_type_expr (output_type )} ) # type: ignore" ],
841- )
842- )
838+ append_type_adapter_definition (output_type_type_adapter_name , output_type , module_info )
843839 output_module_info = module_info
844840 if procedure .errors :
845841 error_type , module_info , errors_chunks , encoder_names = encode_type (
@@ -866,16 +862,9 @@ def __init__(self, client: river.Client[Any]):
866862
867863 error_type_type_adapter_name = TypeName (f"{ error_type .value } TypeAdapter" )
868864 if error_type_type_adapter_name .value != "RiverErrorTypeAdapter" :
869- # print('error type: %r, %r, %r' % (error_type_type_adapter_name, module_info, output_module_info))
870865 if len (module_info ) == 0 :
871866 module_info = output_module_info
872- serdes .append (
873- (
874- [error_type_type_adapter_name ],
875- module_info ,
876- [f"{ error_type_type_adapter_name .value } = TypeAdapter({ render_type_expr (error_type )} ) # type: ignore" ],
877- )
878- )
867+ append_type_adapter_definition (error_type_type_adapter_name , error_type , module_info )
879868 output_or_error_type = UnionTypeExpr ([output_type , error_type_name ])
880869
881870
@@ -915,13 +904,7 @@ def __init__(self, client: river.Client[Any]):
915904 else :
916905 init_type_name = extract_inner_type (init_type )
917906 init_type_type_adapter_name = TypeName (f"{ init_type_name .value } TypeAdapter" )
918- serdes .append (
919- (
920- [init_type_type_adapter_name ],
921- module_info ,
922- [f"{ init_type_type_adapter_name .value } = TypeAdapter({ render_type_expr (init_type )} ) # type: ignore" ]
923- )
924- )
907+ append_type_adapter_definition (init_type_type_adapter_name , init_type , module_info )
925908 render_init_method = f"""\
926909 lambda x: { init_type_type_adapter_name .name } )
927910 .validate_python
0 commit comments