@@ -899,6 +899,10 @@ def to_iter_arg(f: DeField, *args, **kwargs) -> DeField:
899899 return f
900900
901901
902+ def renderable (f : DeField ) -> bool :
903+ return f .init
904+
905+
902906def render_from_iter (cls : Type [Any ], custom : Optional [DeserializeFunc ] = None , type_check : TypeCheck = NoCheck ) -> str :
903907 template = """
904908def {{func}}(cls=cls, maybe_generic=None, data=None, reuse_instances = {{serde_scope.reuse_instances_default}}):
@@ -926,7 +930,8 @@ def {{func}}(cls=cls, maybe_generic=None, data=None, reuse_instances = {{serde_s
926930 env = jinja2 .Environment (loader = jinja2 .DictLoader ({'iter' : template }))
927931 env .filters .update ({'rvalue' : renderer .render })
928932 env .filters .update ({'arg' : to_iter_arg })
929- res = env .get_template ('iter' ).render (func = FROM_ITER , serde_scope = getattr (cls , SERDE_SCOPE ), fields = defields (cls ))
933+ fields = list (filter (renderable , defields (cls )))
934+ res = env .get_template ('iter' ).render (func = FROM_ITER , serde_scope = getattr (cls , SERDE_SCOPE ), fields = fields )
930935
931936 if renderer .import_numpy :
932937 res = "import numpy\n " + res
@@ -973,8 +978,9 @@ def {{func}}(cls=cls, maybe_generic=None, data=None,
973978 env = jinja2 .Environment (loader = jinja2 .DictLoader ({'dict' : template }))
974979 env .filters .update ({'rvalue' : renderer .render })
975980 env .filters .update ({'arg' : functools .partial (to_arg , rename_all = rename_all )})
981+ fields = list (filter (renderable , defields (cls )))
976982 res = env .get_template ('dict' ).render (
977- func = FROM_DICT , serde_scope = getattr (cls , SERDE_SCOPE ), fields = defields ( cls ) , type_check = type_check
983+ func = FROM_DICT , serde_scope = getattr (cls , SERDE_SCOPE ), fields = fields , type_check = type_check
978984 )
979985
980986 if renderer .import_numpy :
0 commit comments