Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,10 @@ message EnumAliasIn {
}

message EnumNotIn {
TestEnum val = 1 [(buf.validate.field).enum = {
not_in: [1]
}];
TestEnum val = 1 [(buf.validate.field).enum = {not_in: [1]}];
}
message EnumAliasNotIn {
TestEnumAlias val = 1 [(buf.validate.field).enum = {
not_in: [1]
}];
TestEnumAlias val = 1 [(buf.validate.field).enum = {not_in: [1]}];
}

message EnumExternal {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,8 @@ message ComplexTestMsg {
]
}];
ComplexTestEnum enum_const = 11 [(buf.validate.field).enum.const = 2];
google.protobuf.Any any_val = 12 [(buf.validate.field).any = {
in: ["type.googleapis.com/google.protobuf.Duration"]
}];
repeated google.protobuf.Timestamp rep_ts_val = 13 [(buf.validate.field).repeated = {
items: {
timestamp: {
gte: {nanos: 1000000}
}
}
}];
google.protobuf.Any any_val = 12 [(buf.validate.field).any = {in: ["type.googleapis.com/google.protobuf.Duration"]}];
repeated google.protobuf.Timestamp rep_ts_val = 13 [(buf.validate.field).repeated = {items: {timestamp: {gte: {nanos: 1000000}}}}];
map<sint32, string> map_val = 14 [(buf.validate.field).map.keys.sint32.lt = 0];
bytes bytes_val = 15 [(buf.validate.field).bytes.const = "\x00\x99"];
oneof o {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,7 @@ message MessageRequiredOneof {
message MessageWith3dInside {}

message MessageOneofSingleField {
option (buf.validate.message).oneof = {
fields: ["str_field"]
};
option (buf.validate.message).oneof = {fields: ["str_field"]};
string str_field = 1;
bool bool_field = 2;
}
Expand Down Expand Up @@ -115,9 +113,7 @@ message MessageOneofMultipleSharedFields {
}

message MessageOneofUnknownFieldName {
option (buf.validate.message).oneof = {
fields: ["xxx"]
};
option (buf.validate.message).oneof = {fields: ["xxx"]};
string str_field = 1;
}

Expand All @@ -134,9 +130,7 @@ message MessageOneofDuplicateField {
}

message MessageOneofZeroFields {
option (buf.validate.message).oneof = {
fields: []
};
option (buf.validate.message).oneof = {fields: []};
string str_field = 1;
bool bool_field = 2;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,7 @@ message FloatIn {
}];
}
message FloatNotIn {
float val = 1 [(buf.validate.field).float = {
not_in: [0]
}];
float val = 1 [(buf.validate.field).float = {not_in: [0]}];
}
message FloatLT {
float val = 1 [(buf.validate.field).float.lt = 0];
Expand Down Expand Up @@ -112,9 +110,7 @@ message DoubleIn {
}];
}
message DoubleNotIn {
double val = 1 [(buf.validate.field).double = {
not_in: [0]
}];
double val = 1 [(buf.validate.field).double = {not_in: [0]}];
}
message DoubleLT {
double val = 1 [(buf.validate.field).double.lt = 0];
Expand Down Expand Up @@ -191,9 +187,7 @@ message Int32In {
}];
}
message Int32NotIn {
int32 val = 1 [(buf.validate.field).int32 = {
not_in: [0]
}];
int32 val = 1 [(buf.validate.field).int32 = {not_in: [0]}];
}
message Int32LT {
int32 val = 1 [(buf.validate.field).int32.lt = 0];
Expand Down Expand Up @@ -264,9 +258,7 @@ message Int64In {
}];
}
message Int64NotIn {
int64 val = 1 [(buf.validate.field).int64 = {
not_in: [0]
}];
int64 val = 1 [(buf.validate.field).int64 = {not_in: [0]}];
}
message Int64LT {
int64 val = 1 [(buf.validate.field).int64.lt = 0];
Expand Down Expand Up @@ -362,9 +354,7 @@ message UInt32In {
}];
}
message UInt32NotIn {
uint32 val = 1 [(buf.validate.field).uint32 = {
not_in: [0]
}];
uint32 val = 1 [(buf.validate.field).uint32 = {not_in: [0]}];
}
message UInt32LT {
uint32 val = 1 [(buf.validate.field).uint32.lt = 5];
Expand Down Expand Up @@ -435,9 +425,7 @@ message UInt64In {
}];
}
message UInt64NotIn {
uint64 val = 1 [(buf.validate.field).uint64 = {
not_in: [0]
}];
uint64 val = 1 [(buf.validate.field).uint64 = {not_in: [0]}];
}
message UInt64LT {
uint64 val = 1 [(buf.validate.field).uint64.lt = 5];
Expand Down Expand Up @@ -508,9 +496,7 @@ message SInt32In {
}];
}
message SInt32NotIn {
sint32 val = 1 [(buf.validate.field).sint32 = {
not_in: [0]
}];
sint32 val = 1 [(buf.validate.field).sint32 = {not_in: [0]}];
}
message SInt32LT {
sint32 val = 1 [(buf.validate.field).sint32.lt = 0];
Expand Down Expand Up @@ -581,9 +567,7 @@ message SInt64In {
}];
}
message SInt64NotIn {
sint64 val = 1 [(buf.validate.field).sint64 = {
not_in: [0]
}];
sint64 val = 1 [(buf.validate.field).sint64 = {not_in: [0]}];
}
message SInt64LT {
sint64 val = 1 [(buf.validate.field).sint64.lt = 0];
Expand Down Expand Up @@ -653,9 +637,7 @@ message Fixed32In {
}];
}
message Fixed32NotIn {
fixed32 val = 1 [(buf.validate.field).fixed32 = {
not_in: [0]
}];
fixed32 val = 1 [(buf.validate.field).fixed32 = {not_in: [0]}];
}
message Fixed32LT {
fixed32 val = 1 [(buf.validate.field).fixed32.lt = 5];
Expand Down Expand Up @@ -726,9 +708,7 @@ message Fixed64In {
}];
}
message Fixed64NotIn {
fixed64 val = 1 [(buf.validate.field).fixed64 = {
not_in: [0]
}];
fixed64 val = 1 [(buf.validate.field).fixed64 = {not_in: [0]}];
}
message Fixed64LT {
fixed64 val = 1 [(buf.validate.field).fixed64.lt = 5];
Expand Down Expand Up @@ -799,9 +779,7 @@ message SFixed32In {
}];
}
message SFixed32NotIn {
sfixed32 val = 1 [(buf.validate.field).sfixed32 = {
not_in: [0]
}];
sfixed32 val = 1 [(buf.validate.field).sfixed32 = {not_in: [0]}];
}
message SFixed32LT {
sfixed32 val = 1 [(buf.validate.field).sfixed32.lt = 0];
Expand Down Expand Up @@ -872,9 +850,7 @@ message SFixed64In {
}];
}
message SFixed64NotIn {
sfixed64 val = 1 [(buf.validate.field).sfixed64 = {
not_in: [0]
}];
sfixed64 val = 1 [(buf.validate.field).sfixed64 = {not_in: [0]}];
}
message SFixed64LT {
sfixed64 val = 1 [(buf.validate.field).sfixed64.lt = 0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,50 +93,36 @@ message RepeatedItemNotIn {
}];
}
message RepeatedEnumIn {
repeated AnEnum val = 1 [(buf.validate.field).repeated.items.enum = {
in: [0]
}];
repeated AnEnum val = 1 [(buf.validate.field).repeated.items.enum = {in: [0]}];
}
message RepeatedEnumNotIn {
repeated AnEnum val = 1 [(buf.validate.field).repeated.items.enum = {
not_in: [0]
}];
repeated AnEnum val = 1 [(buf.validate.field).repeated.items.enum = {not_in: [0]}];
}
message RepeatedEmbeddedEnumIn {
repeated AnotherInEnum val = 1 [(buf.validate.field).repeated.items.enum = {
in: [0]
}];
repeated AnotherInEnum val = 1 [(buf.validate.field).repeated.items.enum = {in: [0]}];
enum AnotherInEnum {
ANOTHER_IN_ENUM_UNSPECIFIED = 0;
ANOTHER_IN_ENUM_A = 1;
ANOTHER_IN_ENUM_B = 2;
}
}
message RepeatedEmbeddedEnumNotIn {
repeated AnotherNotInEnum val = 1 [(buf.validate.field).repeated.items.enum = {
not_in: [0]
}];
repeated AnotherNotInEnum val = 1 [(buf.validate.field).repeated.items.enum = {not_in: [0]}];
enum AnotherNotInEnum {
ANOTHER_NOT_IN_ENUM_UNSPECIFIED = 0;
ANOTHER_NOT_IN_ENUM_A = 1;
ANOTHER_NOT_IN_ENUM_B = 2;
}
}
message RepeatedAnyIn {
repeated google.protobuf.Any val = 1 [(buf.validate.field).repeated.items.any = {
in: ["type.googleapis.com/google.protobuf.Duration"]
}];
repeated google.protobuf.Any val = 1 [(buf.validate.field).repeated.items.any = {in: ["type.googleapis.com/google.protobuf.Duration"]}];
}
message RepeatedAnyNotIn {
repeated google.protobuf.Any val = 1 [(buf.validate.field).repeated.items.any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
repeated google.protobuf.Any val = 1 [(buf.validate.field).repeated.items.any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}
message RepeatedMinAndItemLen {
repeated string val = 1 [(buf.validate.field).repeated = {
items: {
string: {len: 3}
}
items: {string: {len: 3}}
min_items: 1
}];
}
Expand All @@ -147,13 +133,7 @@ message RepeatedMinAndMaxItemLen {
];
}
message RepeatedDuration {
repeated google.protobuf.Duration val = 1 [(buf.validate.field).repeated = {
items: {
duration: {
gte: {nanos: 1000000}
}
}
}];
repeated google.protobuf.Duration val = 1 [(buf.validate.field).repeated = {items: {duration: {gte: {nanos: 1000000}}}}];
}
message RepeatedExactIgnore {
repeated uint32 val = 1 [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,38 +28,26 @@ message AnyRequired {
google.protobuf.Any val = 1 [(buf.validate.field).required = true];
}
message AnyIn {
google.protobuf.Any val = 1 [(buf.validate.field).any = {
in: ["type.googleapis.com/google.protobuf.Duration"]
}];
google.protobuf.Any val = 1 [(buf.validate.field).any = {in: ["type.googleapis.com/google.protobuf.Duration"]}];
}
message AnyNotIn {
google.protobuf.Any val = 1 [(buf.validate.field).any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
google.protobuf.Any val = 1 [(buf.validate.field).any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}

// The below messages should throw compilation errors due to incorrect types.
message AnyWrongTypeScalar {
string val = 1 [(buf.validate.field).any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
string val = 1 [(buf.validate.field).any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}
message AnyWrongTypeMessage {
message WrongType {
int32 val = 1;
}
WrongType val = 1 [(buf.validate.field).any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
WrongType val = 1 [(buf.validate.field).any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}
message AnyWrongTypeWrapper {
google.protobuf.Int32Value val = 1 [(buf.validate.field).any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
google.protobuf.Int32Value val = 1 [(buf.validate.field).any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}

message AnyWrongTypeWKT {
google.protobuf.Timestamp val = 1 [(buf.validate.field).any = {
not_in: ["type.googleapis.com/google.protobuf.Timestamp"]
}];
google.protobuf.Timestamp val = 1 [(buf.validate.field).any = {not_in: ["type.googleapis.com/google.protobuf.Timestamp"]}];
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,12 @@ message DurationIn {
google.protobuf.Duration val = 1 [(buf.validate.field).duration = {
in: [
{seconds: 1},
{nanos: 1000}]
{nanos: 1000}
]
}];
}
message DurationNotIn {
google.protobuf.Duration val = 1 [(buf.validate.field).duration = {
not_in: [
{}]
}];
google.protobuf.Duration val = 1 [(buf.validate.field).duration = {not_in: [{}]}];
}

message DurationLT {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,7 @@ message FieldMaskRequired {
}

message FieldMaskConst {
google.protobuf.FieldMask val = 1 [(buf.validate.field).field_mask.const = {
paths: ["a"]
}];
google.protobuf.FieldMask val = 1 [(buf.validate.field).field_mask.const = {paths: ["a"]}];
}

message FieldMaskIn {
Expand All @@ -50,7 +48,5 @@ message FieldMaskNotIn {
}

message FieldMaskExample {
google.protobuf.FieldMask val = 1 [(buf.validate.field).field_mask.example = {
paths: ["a"]
}];
google.protobuf.FieldMask val = 1 [(buf.validate.field).field_mask.example = {paths: ["a"]}];
}
1 change: 1 addition & 0 deletions poe_tasks.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ sequence = [
"generate-protovalidate",
"generate-test",
"add-license-header",
"format-protos",
]

[tasks.generate-cel]
Expand Down
10 changes: 5 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -44,15 +44,15 @@ Source = "https://github.com/bufbuild/protovalidate-python"
dev = [
"protovalidate-proto",

"buf-bin==1.70.0",
"buf-bin==1.71.0",
"fix-protobuf-imports==0.1.7",
"google-re2-stubs==0.1.1",
"poethepoet==0.46.0",
"pytest==9.1.0",
"pytest==9.1.1",
"pytest-benchmark==5.2.3",
"ruff==0.15.17",
"tombi==1.1.3",
"ty==0.0.49",
"ruff==0.15.18",
"tombi==1.1.4",
"ty==0.0.51",
"types-protobuf==6.32.1.20260221",
]

Expand Down
4 changes: 1 addition & 3 deletions test/proto/bench/v1/bench.proto
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,7 @@ message BenchComplexSchema {
map<string, string> map_str_str = 23 [(buf.validate.field).map.min_pairs = 1];
map<int32, int64> map_i32_i64 = 24 [(buf.validate.field).map.max_pairs = 10];
map<uint64, bool> map_u64_bool = 25;
map<string, bytes> map_str_bytes = 26 [(buf.validate.field).map.keys = {
string: {min_len: 1}
}];
map<string, bytes> map_str_bytes = 26 [(buf.validate.field).map.keys = {string: {min_len: 1}}];

map<string, BenchScalar> map_str_msg = 27 [(buf.validate.field).map.values = {required: true}];
map<int64, BenchScalar> map_i64_msg = 28;
Expand Down
Loading
Loading