31 lines
922 B
Python
31 lines
922 B
Python
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
|
|
)
|