-
Notifications
You must be signed in to change notification settings - Fork 599
Open
Labels
BugReports and/or fixes a bugReports and/or fixes a bugGood First IssueNewcomer-friendly issueNewcomer-friendly issuePythonPython language supportPython language support
Description
Version: protoc-gen-validate = "^0.10.1"
message RequestMessage {
string some_string_field = 1 [(validate.rules).string = {uuid: true, ignore_empty: true}];
string other_string_field_no_validation = 2 [(validate.rules).string = {ignore_empty: true}];
}from app.request_pb2 import RequestMessage
from protoc_gen_validate.validator import ValidationFailed, validate, print_validate
try:
validate(RequestMessage())
except:
print_validate()# Validates RequestMessage
def generate_validate(p):
if p.some_string_field:
try:
uuid.UUID(p.some_string_field)
except ValueError:
raise ValidationFailed("p.some_string_field is not a valid UUID")
if p.other_string_field_no_validation:
return None
File "/app/app/service.py", line 724, in FindCard
validate(proto_message=request)
File "/usr/local/lib/python3.9/site-packages/protoc_gen_validate/validator.py", line 57, in validate
return _validate_inner(ValidatingMessage(proto_message))(proto_message)
File "/usr/local/lib/python3.9/site-packages/protoc_gen_validate/validator.py", line 66, in _validate_inner
exec(func)
File "<string>", line 18
return None
^
IndentationError: expected an indented block
I didn't see any docs indicating the validation would raise an exception if ignore_empty wasn't placed alongside an actual validation rule. Not sure on the lift here to simply ignore generating the python code template for fields that express ignore empty without validation rules.
Could we just make these indented pass for instead of returning None?
kirbpowell
Metadata
Metadata
Assignees
Labels
BugReports and/or fixes a bugReports and/or fixes a bugGood First IssueNewcomer-friendly issueNewcomer-friendly issuePythonPython language supportPython language support