Skip to content

Commit cfb8a99

Browse files
committed
fix review comments
1 parent badb27a commit cfb8a99

File tree

2 files changed

+39
-44
lines changed

2 files changed

+39
-44
lines changed

ydb/_grpc/grpcwrapper/ydb_topic.py

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def to_public(self) -> ydb_topic_public_types.PublicCodec:
4949

5050

5151
@dataclass
52-
class SupportedCodecs(IToProto, IFromProto, IToPublic):
52+
class SupportedCodecs(IToProto, IFromProto, IToPublic, IFromPublic):
5353
codecs: List[Codec]
5454

5555
def to_proto(self) -> ydb_topic_pb2.SupportedCodecs:
@@ -69,6 +69,13 @@ def from_proto(msg: Optional[ydb_topic_pb2.SupportedCodecs]) -> "SupportedCodecs
6969
def to_public(self) -> List[ydb_topic_public_types.PublicCodec]:
7070
return list(map(Codec.to_public, self.codecs))
7171

72+
@staticmethod
73+
def from_public(codecs: Optional[List[ydb_topic_public_types.PublicCodec]]) -> "SupportedCodecs":
74+
if codecs is None:
75+
return None
76+
77+
return SupportedCodecs(codecs=codecs)
78+
7279

7380
@dataclass(order=True)
7481
class OffsetsRange(IFromProto, IToProto):
@@ -886,17 +893,21 @@ def from_proto(
886893
@dataclass
887894
class AlterConsumer(IToProto, IFromPublic):
888895
name: str
889-
set_important: bool
890-
set_read_from: datetime.datetime
891-
set_supported_codecs: SupportedCodecs
892-
alter_attributes: Dict[str, str]
896+
set_important: Optional[bool]
897+
set_read_from: Optional[datetime.datetime]
898+
set_supported_codecs: Optional[SupportedCodecs]
899+
alter_attributes: Optional[Dict[str, str]]
893900

894901
def to_proto(self) -> ydb_topic_pb2.AlterConsumer:
902+
supported_codecs = None
903+
if self.set_supported_codecs is not None:
904+
supported_codecs = self.set_supported_codecs.to_proto()
905+
895906
return ydb_topic_pb2.AlterConsumer(
896907
name=self.name,
897908
set_important=self.set_important,
898909
set_read_from=proto_timestamp_from_datetime(self.set_read_from),
899-
set_supported_codecs=self.set_supported_codecs.to_proto(),
910+
set_supported_codecs=supported_codecs,
900911
alter_attributes=self.alter_attributes,
901912
)
902913

@@ -905,13 +916,11 @@ def from_public(alter_consumer: ydb_topic_public_types.PublicAlterConsumer) -> A
905916
if not alter_consumer:
906917
return None
907918

908-
supported_codecs = alter_consumer.set_supported_codecs if alter_consumer.set_supported_codecs else []
909-
910919
return AlterConsumer(
911920
name=alter_consumer.name,
912921
set_important=alter_consumer.set_important,
913922
set_read_from=alter_consumer.set_read_from,
914-
set_supported_codecs=SupportedCodecs(codecs=supported_codecs),
923+
set_supported_codecs=SupportedCodecs.from_public(alter_consumer.set_supported_codecs),
915924
alter_attributes=alter_consumer.alter_attributes,
916925
)
917926

@@ -936,16 +945,9 @@ def to_proto(self) -> ydb_topic_pb2.PartitioningSettings:
936945

937946

938947
@dataclass
939-
class AlterPartitioningSettings(IToProto, IFromProto):
940-
set_min_active_partitions: int
941-
set_partition_count_limit: int
942-
943-
@staticmethod
944-
def from_proto(msg: ydb_topic_pb2.AlterPartitioningSettings) -> "AlterPartitioningSettings":
945-
return AlterPartitioningSettings(
946-
set_min_active_partitions=msg.set_min_active_partitions,
947-
set_partition_count_limit=msg.set_partition_count_limit,
948-
)
948+
class AlterPartitioningSettings(IToProto):
949+
set_min_active_partitions: Optional[int]
950+
set_partition_count_limit: Optional[int]
949951

950952
def to_proto(self) -> ydb_topic_pb2.AlterPartitioningSettings:
951953
return ydb_topic_pb2.AlterPartitioningSettings(
@@ -1050,20 +1052,22 @@ class CreateTopicResult:
10501052
@dataclass
10511053
class AlterTopicRequest(IToProto, IFromPublic):
10521054
path: str
1053-
add_consumers: List["Consumer"]
1054-
alter_partitioning_settings: AlterPartitioningSettings
1055-
set_retention_period: datetime.timedelta
1056-
set_retention_storage_mb: int
1057-
set_supported_codecs: SupportedCodecs
1058-
set_partition_write_burst_bytes: typing.Optional[int]
1059-
set_partition_write_speed_bytes_per_second: typing.Optional[int]
1060-
alter_attributes: Dict[str, str]
1061-
alter_consumers: List[AlterConsumer]
1062-
drop_consumers: List[str]
1063-
set_metering_mode: "MeteringMode"
1055+
add_consumers: Optional[List["Consumer"]]
1056+
alter_partitioning_settings: Optional[AlterPartitioningSettings]
1057+
set_retention_period: Optional[datetime.timedelta]
1058+
set_retention_storage_mb: Optional[int]
1059+
set_supported_codecs: Optional[SupportedCodecs]
1060+
set_partition_write_burst_bytes: Optional[int]
1061+
set_partition_write_speed_bytes_per_second: Optional[int]
1062+
alter_attributes: Optional[Dict[str, str]]
1063+
alter_consumers: Optional[List[AlterConsumer]]
1064+
drop_consumers: Optional[List[str]]
1065+
set_metering_mode: Optional["MeteringMode"]
10641066

10651067
def to_proto(self) -> ydb_topic_pb2.AlterTopicRequest:
1066-
supported_codecs = self.set_supported_codecs.to_proto() if self.set_supported_codecs.codecs else None
1068+
supported_codecs = None
1069+
if self.set_supported_codecs is not None:
1070+
supported_codecs = self.set_supported_codecs.to_proto()
10671071

10681072
return ydb_topic_pb2.AlterTopicRequest(
10691073
path=self.path,
@@ -1098,8 +1102,6 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
10981102

10991103
drop_consumers = req.drop_consumers if req.drop_consumers else []
11001104

1101-
supported_codecs = req.set_supported_codecs if req.set_supported_codecs else []
1102-
11031105
return AlterTopicRequest(
11041106
path=req.path,
11051107
alter_partitioning_settings=AlterPartitioningSettings(
@@ -1109,9 +1111,7 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
11091111
add_consumers=add_consumers,
11101112
set_retention_period=req.set_retention_period,
11111113
set_retention_storage_mb=req.set_retention_storage_mb,
1112-
set_supported_codecs=SupportedCodecs(
1113-
codecs=supported_codecs,
1114-
),
1114+
set_supported_codecs=SupportedCodecs.from_public(req.set_supported_codecs),
11151115
set_partition_write_burst_bytes=req.set_partition_write_burst_bytes,
11161116
set_partition_write_speed_bytes_per_second=req.set_partition_write_speed_bytes_per_second,
11171117
alter_attributes=req.alter_attributes,
@@ -1121,11 +1121,6 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
11211121
)
11221122

11231123

1124-
@dataclass
1125-
class AlterTopicResult:
1126-
pass
1127-
1128-
11291124
@dataclass
11301125
class DescribeTopicRequest:
11311126
path: str

ydb/_grpc/grpcwrapper/ydb_topic_public_types.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ class PublicConsumer:
9393
@dataclass
9494
class PublicAlterConsumer:
9595
name: str
96-
set_important: bool = False
96+
set_important: Optional[bool] = False
9797
"""
9898
Consumer may be marked as 'important'. It means messages for this consumer will never expire due to retention.
9999
User should take care that such consumer never stalls, to prevent running out of disk space.
@@ -102,13 +102,13 @@ class PublicAlterConsumer:
102102
set_read_from: Optional[datetime.datetime] = None
103103
"All messages with smaller server written_at timestamp will be skipped."
104104

105-
set_supported_codecs: List[PublicCodec] = field(default_factory=lambda: list())
105+
set_supported_codecs: Optional[List[PublicCodec]] = None
106106
"""
107107
List of supported codecs by this consumer.
108108
supported_codecs on topic must be contained inside this list.
109109
"""
110110

111-
alter_attributes: Dict[str, str] = field(default_factory=lambda: dict())
111+
alter_attributes: Optional[Dict[str, str]] = None
112112
"Attributes of consumer"
113113

114114

0 commit comments

Comments
 (0)