from typing import Optional from frostfs_sdk.models.dto.version import Version from frostfs_sdk.protos.models.refs import types_pb2 as types_pb2_refs class VersionMapper: @staticmethod def to_grpc_message(version: Optional[Version]) -> Optional[types_pb2_refs.Version]: """ Converts a Version object to a gRPC Version message. """ if version is None: return None return types_pb2_refs.Version( major=version.major, minor=version.minor ) @staticmethod def to_model(grpc_version: Optional[types_pb2_refs.Version]) -> Optional[Version]: """ Converts a gRPC Version message to a Version object. """ if grpc_version is None or grpc_version.ByteSize() == 0: return None return Version( major=grpc_version.major, minor=grpc_version.minor )