Skip to content

Commit 170bd99

Browse files
author
Steve Ayers
committed
Lint
1 parent 282cc4d commit 170bd99

File tree

2 files changed

+57
-57
lines changed

2 files changed

+57
-57
lines changed

protovalidate/internal/rules.py

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ def sub_context(self):
286286
return RuleContext(fail_fast=self._fail_fast)
287287

288288

289-
class RuleRules:
289+
class Rules:
290290
"""The rules associated with a single 'rules' message."""
291291

292292
def validate(self, ctx: RuleContext, _: message.Message):
@@ -303,7 +303,7 @@ class CelRunner:
303303
rule_path: typing.Optional[validate_pb2.FieldPath] = None
304304

305305

306-
class CelRuleRules(RuleRules):
306+
class CelRules(Rules):
307307
"""A rule that has rules written in CEL."""
308308

309309
_cel: list[CelRunner]
@@ -386,7 +386,7 @@ def add_rule(
386386
)
387387

388388

389-
class MessageRuleRules(CelRuleRules):
389+
class MessageRules(CelRules):
390390
"""Message-level rules."""
391391

392392
def validate(self, ctx: RuleContext, message: message.Message):
@@ -420,7 +420,7 @@ def _zero_value(field: descriptor.FieldDescriptor):
420420
return _field_value_to_cel(field.default_value, field)
421421

422422

423-
class FieldRuleRules(CelRuleRules):
423+
class FieldRules(CelRules):
424424
"""Field-level rules."""
425425

426426
_ignore_empty = False
@@ -505,7 +505,7 @@ def validate(self, ctx: RuleContext, message: message.Message):
505505
_field_to_element(self._field),
506506
],
507507
),
508-
rule=FieldRuleRules._required_rule_path,
508+
rule=FieldRules._required_rule_path,
509509
rule_value=self._required,
510510
rule_id="required",
511511
message="value is required",
@@ -534,7 +534,7 @@ def _validate_value(self, ctx: RuleContext, val: typing.Any, *, for_key: bool =
534534
pass
535535

536536

537-
class AnyRuleRules(FieldRuleRules):
537+
class AnyRules(FieldRules):
538538
"""Rules for an Any field."""
539539

540540
_in_rule_path: typing.ClassVar[validate_pb2.FieldPath] = validate_pb2.FieldPath(
@@ -577,7 +577,7 @@ def _validate_value(self, ctx: RuleContext, value: any_pb2.Any, *, for_key: bool
577577
if value.type_url not in self._in:
578578
ctx.add(
579579
Violation(
580-
rule=AnyRuleRules._in_rule_path,
580+
rule=AnyRules._in_rule_path,
581581
rule_value=self._in,
582582
rule_id="any.in",
583583
message="type URL must be in the allow list",
@@ -587,7 +587,7 @@ def _validate_value(self, ctx: RuleContext, value: any_pb2.Any, *, for_key: bool
587587
if value.type_url in self._not_in:
588588
ctx.add(
589589
Violation(
590-
rule=AnyRuleRules._not_in_rule_path,
590+
rule=AnyRules._not_in_rule_path,
591591
rule_value=self._not_in,
592592
rule_id="any.not_in",
593593
message="type URL must not be in the block list",
@@ -596,7 +596,7 @@ def _validate_value(self, ctx: RuleContext, value: any_pb2.Any, *, for_key: bool
596596
)
597597

598598

599-
class EnumRuleRules(FieldRuleRules):
599+
class EnumRules(FieldRules):
600600
"""Rules for an enum field."""
601601

602602
_defined_only = False
@@ -639,18 +639,18 @@ def validate(self, ctx: RuleContext, message: message.Message):
639639
_field_to_element(self._field),
640640
],
641641
),
642-
rule=EnumRuleRules._defined_only_rule_path,
642+
rule=EnumRules._defined_only_rule_path,
643643
rule_value=self._defined_only,
644644
rule_id="enum.defined_only",
645645
message="value must be one of the defined enum values",
646646
),
647647
)
648648

649649

650-
class RepeatedRuleRules(FieldRuleRules):
650+
class RepeatedRules(FieldRules):
651651
"""Rules for a repeated field."""
652652

653-
_item_rules: typing.Optional[FieldRuleRules] = None
653+
_item_rules: typing.Optional[FieldRules] = None
654654

655655
_items_rules_suffix: typing.ClassVar[list[validate_pb2.FieldPathElement]] = [
656656
_field_to_element(
@@ -667,7 +667,7 @@ def __init__(
667667
funcs: dict[str, celpy.CELFunction],
668668
field: descriptor.FieldDescriptor,
669669
field_level: validate_pb2.FieldRules,
670-
item_rules: typing.Optional[FieldRuleRules],
670+
item_rules: typing.Optional[FieldRules],
671671
):
672672
super().__init__(env, funcs, field, field_level)
673673
if item_rules is not None:
@@ -688,17 +688,17 @@ def validate(self, ctx: RuleContext, message: message.Message):
688688
element = _field_to_element(self._field)
689689
element.index = i
690690
sub_ctx.add_field_path_element(element)
691-
sub_ctx.add_rule_path_elements(RepeatedRuleRules._items_rules_suffix)
691+
sub_ctx.add_rule_path_elements(RepeatedRules._items_rules_suffix)
692692
ctx.add_errors(sub_ctx)
693693
if ctx.done:
694694
return
695695

696696

697-
class MapRuleRules(FieldRuleRules):
697+
class MapRules(FieldRules):
698698
"""Rules for a map field."""
699699

700-
_key_rules: typing.Optional[FieldRuleRules] = None
701-
_value_rules: typing.Optional[FieldRuleRules] = None
700+
_key_rules: typing.Optional[FieldRules] = None
701+
_value_rules: typing.Optional[FieldRules] = None
702702

703703
_key_rules_suffix: typing.ClassVar[list[validate_pb2.FieldPathElement]] = [
704704
_field_to_element(validate_pb2.MapRules.DESCRIPTOR.fields_by_number[validate_pb2.MapRules.KEYS_FIELD_NUMBER]),
@@ -720,8 +720,8 @@ def __init__(
720720
funcs: dict[str, celpy.CELFunction],
721721
field: descriptor.FieldDescriptor,
722722
field_level: validate_pb2.FieldRules,
723-
key_rules: typing.Optional[FieldRuleRules],
724-
value_rules: typing.Optional[FieldRuleRules],
723+
key_rules: typing.Optional[FieldRules],
724+
value_rules: typing.Optional[FieldRules],
725725
):
726726
super().__init__(env, funcs, field, field_level)
727727
if key_rules is not None:
@@ -740,13 +740,13 @@ def validate(self, ctx: RuleContext, message: message.Message):
740740
if not self._key_rules._ignore_empty or k:
741741
self._key_rules.validate_item(key_ctx, k, for_key=True)
742742
if key_ctx.has_errors():
743-
key_ctx.add_rule_path_elements(MapRuleRules._key_rules_suffix)
743+
key_ctx.add_rule_path_elements(MapRules._key_rules_suffix)
744744
map_ctx = ctx.sub_context()
745745
if self._value_rules is not None:
746746
if not self._value_rules._ignore_empty or v:
747747
self._value_rules.validate_item(map_ctx, v)
748748
if map_ctx.has_errors():
749-
map_ctx.add_rule_path_elements(MapRuleRules._value_rules_suffix)
749+
map_ctx.add_rule_path_elements(MapRules._value_rules_suffix)
750750
map_ctx.add_errors(key_ctx)
751751
if map_ctx.has_errors():
752752
element = _field_to_element(self._field)
@@ -757,7 +757,7 @@ def validate(self, ctx: RuleContext, message: message.Message):
757757
ctx.add_errors(map_ctx)
758758

759759

760-
class OneofRuleRules(RuleRules):
760+
class OneofRules(Rules):
761761
"""Rules for a oneof definition."""
762762

763763
required = True
@@ -787,14 +787,14 @@ class RuleFactory:
787787

788788
_env: celpy.Environment
789789
_funcs: dict[str, celpy.CELFunction]
790-
_cache: dict[descriptor.Descriptor, typing.Union[list[RuleRules], Exception]]
790+
_cache: dict[descriptor.Descriptor, typing.Union[list[Rules], Exception]]
791791

792792
def __init__(self, funcs: dict[str, celpy.CELFunction]):
793793
self._env = celpy.Environment(runner_class=InterpretedRunner)
794794
self._funcs = funcs
795795
self._cache = {}
796796

797-
def get(self, descriptor: descriptor.Descriptor) -> list[RuleRules]:
797+
def get(self, descriptor: descriptor.Descriptor) -> list[Rules]:
798798
if descriptor not in self._cache:
799799
try:
800800
self._cache[descriptor] = self._new_rules(descriptor)
@@ -805,8 +805,8 @@ def get(self, descriptor: descriptor.Descriptor) -> list[RuleRules]:
805805
raise result
806806
return result
807807

808-
def _new_message_rule(self, rules: validate_pb2.MessageRules) -> MessageRuleRules:
809-
result = MessageRuleRules(rules)
808+
def _new_message_rule(self, rules: validate_pb2.MessageRules) -> MessageRules:
809+
result = MessageRules(rules)
810810
for cel in rules.cel:
811811
result.add_rule(self._env, self._funcs, cel)
812812
return result
@@ -822,122 +822,122 @@ def _new_scalar_field_rule(
822822
return None
823823
type_case = field_level.WhichOneof("type")
824824
if type_case is None:
825-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
825+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
826826
return result
827827
elif type_case == "duration":
828828
check_field_type(field, 0, "google.protobuf.Duration")
829-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
829+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
830830
return result
831831
elif type_case == "timestamp":
832832
check_field_type(field, 0, "google.protobuf.Timestamp")
833-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
833+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
834834
return result
835835
elif type_case == "enum":
836836
check_field_type(field, descriptor.FieldDescriptor.TYPE_ENUM)
837-
result = EnumRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
837+
result = EnumRules(self._env, self._funcs, field, field_level, for_items=for_items)
838838
return result
839839
elif type_case == "bool":
840840
check_field_type(field, descriptor.FieldDescriptor.TYPE_BOOL, "google.protobuf.BoolValue")
841-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
841+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
842842
return result
843843
elif type_case == "bytes":
844844
check_field_type(
845845
field,
846846
descriptor.FieldDescriptor.TYPE_BYTES,
847847
"google.protobuf.BytesValue",
848848
)
849-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
849+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
850850
return result
851851
elif type_case == "fixed32":
852852
check_field_type(field, descriptor.FieldDescriptor.TYPE_FIXED32)
853-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
853+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
854854
return result
855855
elif type_case == "fixed64":
856856
check_field_type(field, descriptor.FieldDescriptor.TYPE_FIXED64)
857-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
857+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
858858
return result
859859
elif type_case == "float":
860860
check_field_type(
861861
field,
862862
descriptor.FieldDescriptor.TYPE_FLOAT,
863863
"google.protobuf.FloatValue",
864864
)
865-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
865+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
866866
return result
867867
elif type_case == "double":
868868
check_field_type(
869869
field,
870870
descriptor.FieldDescriptor.TYPE_DOUBLE,
871871
"google.protobuf.DoubleValue",
872872
)
873-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
873+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
874874
return result
875875
elif type_case == "int32":
876876
check_field_type(
877877
field,
878878
descriptor.FieldDescriptor.TYPE_INT32,
879879
"google.protobuf.Int32Value",
880880
)
881-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
881+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
882882
return result
883883
elif type_case == "int64":
884884
check_field_type(
885885
field,
886886
descriptor.FieldDescriptor.TYPE_INT64,
887887
"google.protobuf.Int64Value",
888888
)
889-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
889+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
890890
return result
891891
elif type_case == "sfixed32":
892892
check_field_type(field, descriptor.FieldDescriptor.TYPE_SFIXED32)
893-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
893+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
894894
return result
895895
elif type_case == "sfixed64":
896896
check_field_type(field, descriptor.FieldDescriptor.TYPE_SFIXED64)
897-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
897+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
898898
return result
899899
elif type_case == "sint32":
900900
check_field_type(field, descriptor.FieldDescriptor.TYPE_SINT32)
901-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
901+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
902902
return result
903903
elif type_case == "sint64":
904904
check_field_type(field, descriptor.FieldDescriptor.TYPE_SINT64)
905-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
905+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
906906
return result
907907
elif type_case == "uint32":
908908
check_field_type(
909909
field,
910910
descriptor.FieldDescriptor.TYPE_UINT32,
911911
"google.protobuf.UInt32Value",
912912
)
913-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
913+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
914914
return result
915915
elif type_case == "uint64":
916916
check_field_type(
917917
field,
918918
descriptor.FieldDescriptor.TYPE_UINT64,
919919
"google.protobuf.UInt64Value",
920920
)
921-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
921+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
922922
return result
923923
elif type_case == "string":
924924
check_field_type(
925925
field,
926926
descriptor.FieldDescriptor.TYPE_STRING,
927927
"google.protobuf.StringValue",
928928
)
929-
result = FieldRuleRules(self._env, self._funcs, field, field_level, for_items=for_items)
929+
result = FieldRules(self._env, self._funcs, field, field_level, for_items=for_items)
930930
return result
931931
elif type_case == "any":
932932
check_field_type(field, descriptor.FieldDescriptor.TYPE_MESSAGE, "google.protobuf.Any")
933-
result = AnyRuleRules(self._env, self._funcs, field, field_level)
933+
result = AnyRules(self._env, self._funcs, field, field_level)
934934
return result
935935

936936
def _new_field_rule(
937937
self,
938938
field: descriptor.FieldDescriptor,
939939
rules: validate_pb2.FieldRules,
940-
) -> FieldRuleRules:
940+
) -> FieldRules:
941941
if field.label != descriptor.FieldDescriptor.LABEL_REPEATED:
942942
return self._new_scalar_field_rule(field, rules)
943943
if field.message_type is not None and field.message_type.GetOptions().map_entry:
@@ -949,15 +949,15 @@ def _new_field_rule(
949949
if rules.map.HasField("values"):
950950
value_field = field.message_type.fields_by_name["value"]
951951
value_rules = self._new_scalar_field_rule(value_field, rules.map.values, for_items=True)
952-
return MapRuleRules(self._env, self._funcs, field, rules, key_rules, value_rules)
952+
return MapRules(self._env, self._funcs, field, rules, key_rules, value_rules)
953953
item_rule = None
954954
if rules.repeated.HasField("items"):
955955
item_rule = self._new_scalar_field_rule(field, rules.repeated.items)
956-
return RepeatedRuleRules(self._env, self._funcs, field, rules, item_rule)
956+
return RepeatedRules(self._env, self._funcs, field, rules, item_rule)
957957

958-
def _new_rules(self, desc: descriptor.Descriptor) -> list[RuleRules]:
959-
result: list[RuleRules] = []
960-
rule: typing.Optional[RuleRules] = None
958+
def _new_rules(self, desc: descriptor.Descriptor) -> list[Rules]:
959+
result: list[Rules] = []
960+
rule: typing.Optional[Rules] = None
961961
if validate_pb2.message in desc.GetOptions().Extensions:
962962
message_level = desc.GetOptions().Extensions[validate_pb2.message]
963963
if message_level.disabled:
@@ -967,7 +967,7 @@ def _new_rules(self, desc: descriptor.Descriptor) -> list[RuleRules]:
967967

968968
for oneof in desc.oneofs:
969969
if validate_pb2.oneof in oneof.GetOptions().Extensions:
970-
if rule := OneofRuleRules(oneof, oneof.GetOptions().Extensions[validate_pb2.oneof]):
970+
if rule := OneofRules(oneof, oneof.GetOptions().Extensions[validate_pb2.oneof]):
971971
result.append(rule)
972972

973973
for field in desc.fields:
@@ -993,7 +993,7 @@ def _new_rules(self, desc: descriptor.Descriptor) -> list[RuleRules]:
993993
return result
994994

995995

996-
class SubMsgRule(RuleRules):
996+
class SubMsgRule(Rules):
997997
def __init__(
998998
self,
999999
factory: RuleFactory,
@@ -1018,7 +1018,7 @@ def validate(self, ctx: RuleContext, message: message.Message):
10181018
ctx.add_errors(sub_ctx)
10191019

10201020

1021-
class MapValMsgRule(RuleRules):
1021+
class MapValMsgRule(Rules):
10221022
def __init__(
10231023
self,
10241024
factory: RuleFactory,
@@ -1049,7 +1049,7 @@ def validate(self, ctx: RuleContext, message: message.Message):
10491049
ctx.add_errors(sub_ctx)
10501050

10511051

1052-
class RepeatedMsgRule(RuleRules):
1052+
class RepeatedMsgRule(Rules):
10531053
def __init__(
10541054
self,
10551055
factory: RuleFactory,

0 commit comments

Comments
 (0)