[#3] Added generate proto script create container method

Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
This commit is contained in:
Ilyas Niyazov 2025-03-25 11:12:10 +03:00
parent 19282f13cc
commit 3afa14db95
52 changed files with 1381 additions and 74 deletions

View file

@ -0,0 +1,30 @@
from typing import Any
from google.protobuf.message import Message
class MessageHelper:
@staticmethod
def get_field(message: Message, field_name: str):
"""
Retrieves the value of a field from a Protobuf message.
:param message: A Protobuf Message object.
:param field_name: The name of the field to retrieve.
:return: The value of the specified field.
:raises ValueError: If the input parameters are invalid.
"""
if not message or not field_name or not isinstance(field_name, str) or not field_name.strip():
raise ValueError("Some parameter is missing")
descriptor = message.DESCRIPTOR
field_descriptor = descriptor.fields[field_name]
if not field_descriptor:
raise ValueError(f"Field '{field_name}' not found in message descriptor")
return getattr(field_descriptor, field_name)
@staticmethod
def set_field(message: Message, field_name: str, value: Any) -> None:
if message is None or not field_name.strip() or value is None:
raise ValueError("Some parameter is missing")
setattr(message, message.DESCRIPTOR.fields[field_name], value)