33
33
)
34
34
35
35
36
- class Codec (int , IToPublic ):
36
+ class Codec (int , IToPublic , IFromPublic ):
37
37
CODEC_UNSPECIFIED = 0
38
38
CODEC_RAW = 1
39
39
CODEC_GZIP = 2
@@ -47,9 +47,13 @@ def from_proto_iterable(codecs: typing.Iterable[int]) -> List["Codec"]:
47
47
def to_public (self ) -> ydb_topic_public_types .PublicCodec :
48
48
return ydb_topic_public_types .PublicCodec (int (self ))
49
49
50
+ @staticmethod
51
+ def from_public (codec : Union [ydb_topic_public_types .PublicCodec , int ]) -> "Codec" :
52
+ return Codec (int (codec ))
53
+
50
54
51
55
@dataclass
52
- class SupportedCodecs (IToProto , IFromProto , IToPublic ):
56
+ class SupportedCodecs (IToProto , IFromProto , IToPublic , IFromPublic ):
53
57
codecs : List [Codec ]
54
58
55
59
def to_proto (self ) -> ydb_topic_pb2 .SupportedCodecs :
@@ -69,6 +73,15 @@ def from_proto(msg: Optional[ydb_topic_pb2.SupportedCodecs]) -> "SupportedCodecs
69
73
def to_public (self ) -> List [ydb_topic_public_types .PublicCodec ]:
70
74
return list (map (Codec .to_public , self .codecs ))
71
75
76
+ @staticmethod
77
+ def from_public (
78
+ codecs : Optional [List [Union [ydb_topic_public_types .PublicCodec , int ]]]
79
+ ) -> Optional ["SupportedCodecs" ]:
80
+ if codecs is None :
81
+ return None
82
+
83
+ return SupportedCodecs (codecs = [Codec .from_public (codec ) for codec in codecs ])
84
+
72
85
73
86
@dataclass (order = True )
74
87
class OffsetsRange (IFromProto , IToProto ):
@@ -886,17 +899,21 @@ def from_proto(
886
899
@dataclass
887
900
class AlterConsumer (IToProto , IFromPublic ):
888
901
name : str
889
- set_important : bool
890
- set_read_from : datetime .datetime
891
- set_supported_codecs : SupportedCodecs
892
- alter_attributes : Dict [str , str ]
902
+ set_important : Optional [ bool ]
903
+ set_read_from : Optional [ datetime .datetime ]
904
+ set_supported_codecs : Optional [ SupportedCodecs ]
905
+ alter_attributes : Optional [ Dict [str , str ] ]
893
906
894
907
def to_proto (self ) -> ydb_topic_pb2 .AlterConsumer :
908
+ supported_codecs = None
909
+ if self .set_supported_codecs is not None :
910
+ supported_codecs = self .set_supported_codecs .to_proto ()
911
+
895
912
return ydb_topic_pb2 .AlterConsumer (
896
913
name = self .name ,
897
914
set_important = self .set_important ,
898
915
set_read_from = proto_timestamp_from_datetime (self .set_read_from ),
899
- set_supported_codecs = self . set_supported_codecs . to_proto () ,
916
+ set_supported_codecs = supported_codecs ,
900
917
alter_attributes = self .alter_attributes ,
901
918
)
902
919
@@ -905,13 +922,11 @@ def from_public(alter_consumer: ydb_topic_public_types.PublicAlterConsumer) -> A
905
922
if not alter_consumer :
906
923
return None
907
924
908
- supported_codecs = alter_consumer .set_supported_codecs if alter_consumer .set_supported_codecs else []
909
-
910
925
return AlterConsumer (
911
926
name = alter_consumer .name ,
912
927
set_important = alter_consumer .set_important ,
913
928
set_read_from = alter_consumer .set_read_from ,
914
- set_supported_codecs = SupportedCodecs ( codecs = supported_codecs ),
929
+ set_supported_codecs = SupportedCodecs . from_public ( alter_consumer . set_supported_codecs ),
915
930
alter_attributes = alter_consumer .alter_attributes ,
916
931
)
917
932
@@ -936,16 +951,9 @@ def to_proto(self) -> ydb_topic_pb2.PartitioningSettings:
936
951
937
952
938
953
@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
- )
954
+ class AlterPartitioningSettings (IToProto ):
955
+ set_min_active_partitions : Optional [int ]
956
+ set_partition_count_limit : Optional [int ]
949
957
950
958
def to_proto (self ) -> ydb_topic_pb2 .AlterPartitioningSettings :
951
959
return ydb_topic_pb2 .AlterPartitioningSettings (
@@ -1050,20 +1058,22 @@ class CreateTopicResult:
1050
1058
@dataclass
1051
1059
class AlterTopicRequest (IToProto , IFromPublic ):
1052
1060
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"
1061
+ add_consumers : Optional [ List ["Consumer" ] ]
1062
+ alter_partitioning_settings : Optional [ AlterPartitioningSettings ]
1063
+ set_retention_period : Optional [ datetime .timedelta ]
1064
+ set_retention_storage_mb : Optional [ int ]
1065
+ set_supported_codecs : Optional [ SupportedCodecs ]
1066
+ set_partition_write_burst_bytes : Optional [int ]
1067
+ set_partition_write_speed_bytes_per_second : Optional [int ]
1068
+ alter_attributes : Optional [ Dict [str , str ] ]
1069
+ alter_consumers : Optional [ List [AlterConsumer ] ]
1070
+ drop_consumers : Optional [ List [str ] ]
1071
+ set_metering_mode : Optional [ "MeteringMode" ]
1064
1072
1065
1073
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
1074
+ supported_codecs = None
1075
+ if self .set_supported_codecs is not None :
1076
+ supported_codecs = self .set_supported_codecs .to_proto ()
1067
1077
1068
1078
return ydb_topic_pb2 .AlterTopicRequest (
1069
1079
path = self .path ,
@@ -1098,8 +1108,6 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
1098
1108
1099
1109
drop_consumers = req .drop_consumers if req .drop_consumers else []
1100
1110
1101
- supported_codecs = req .set_supported_codecs if req .set_supported_codecs else []
1102
-
1103
1111
return AlterTopicRequest (
1104
1112
path = req .path ,
1105
1113
alter_partitioning_settings = AlterPartitioningSettings (
@@ -1109,9 +1117,7 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
1109
1117
add_consumers = add_consumers ,
1110
1118
set_retention_period = req .set_retention_period ,
1111
1119
set_retention_storage_mb = req .set_retention_storage_mb ,
1112
- set_supported_codecs = SupportedCodecs (
1113
- codecs = supported_codecs ,
1114
- ),
1120
+ set_supported_codecs = SupportedCodecs .from_public (req .set_supported_codecs ),
1115
1121
set_partition_write_burst_bytes = req .set_partition_write_burst_bytes ,
1116
1122
set_partition_write_speed_bytes_per_second = req .set_partition_write_speed_bytes_per_second ,
1117
1123
alter_attributes = req .alter_attributes ,
@@ -1121,11 +1127,6 @@ def from_public(req: ydb_topic_public_types.AlterTopicRequestParams) -> AlterTop
1121
1127
)
1122
1128
1123
1129
1124
- @dataclass
1125
- class AlterTopicResult :
1126
- pass
1127
-
1128
-
1129
1130
@dataclass
1130
1131
class DescribeTopicRequest :
1131
1132
path : str
0 commit comments