if type(value_type) is typing.TypeVar:
source.append("{}self.{} = [{}.from_json(o) for o in {} or []]".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Mapping):
if type(value_type) is typing.TypeVar:
source.append("{}self.{} = [{}.from_json(o) for o in {} or []]".format(
INDENT * 2, arg_name, strcast(value_type), arg_name))
else:
source.append("{}self.{} = {}".format(INDENT * 2, arg_name, arg_name))
elif issubclass(arg_type, typing.Mapping):