[#3] Added generate proto script create container method
Signed-off-by: Ilyas Niyazov <i.niyazov@yadro.com>
This commit is contained in:
parent
19282f13cc
commit
3afa14db95
52 changed files with 1381 additions and 74 deletions
30
frostfs_sdk/client/utils/message_helper.py
Normal file
30
frostfs_sdk/client/utils/message_helper.py
Normal 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)
|
Loading…
Add table
Add a link
Reference in a new issue