AttributeError: Assignment not allowed to composite field "task" in protocol message object AttributeError: Assignment not allowed to composite field "task" in protocol message object python python

AttributeError: Assignment not allowed to composite field "task" in protocol message object


I don't know protocol-buffers but I took a look at the docs and it says:

You cannot assign a value to an embedded message field. Instead, assigning a value to any field within the child message implies setting the message field in the parent.

So I'm assuming this should work:

task = yacc.task()task.id = 1000task.msg = u"test"ptask = yacc.task_info() ptask.task.id = task.idptask.task.msg = task.msg


I'm new to protocol-buffers too and faced with the same problem. I've found this method helpful.

I think it should work:

task = yacc.task()task.id = 1000task.msg = u"test"ptask = yacc.task_info() ptask.task.MergeFrom(task)