AttributeError: Atribuição não permitida para o campo composto "tarefa" no objeto de mensagem de protocolo

Estou usando buffers de protocolo python lib para enviar dados, mas tem alguns problemas, então

Traceback (most recent call last):
  File "test_message.py", line 17, in <module>
    ptask.task = task
  File "build\bdist.win32\egg\google\protobuf\internal\python_message.py", line
513, in setter
AttributeError: Assignment not allowed to composite field "_task" in protocol message object.

o src da seguinte forma:

arquivo proto:

message task {
    required int32 id = 1;
    required string msg = 2;
}

message task_info {
    required task task = 1;
}

código python:

task = yacc.task()
task.id = 1000
task.msg = u"test"
ptask = yacc.task_info() 
ptask.task = task # this line happen the runtime error 

questionAnswers(3)

yourAnswerToTheQuestion