@@ -62,7 +62,7 @@ def unwrap(msg: message.Message) -> celtypes.Value:
6262}
6363
6464
65- def _msg_to_cel (msg : message .Message ) -> dict [str , celtypes .Value ]:
65+ def _msg_to_cel (msg : message .Message ) -> typing . Dict [str , celtypes .Value ]:
6666 ctor = _MSG_TYPE_URL_TO_CTOR .get (msg .DESCRIPTOR .full_name )
6767 if ctor is not None :
6868 return ctor (msg )
@@ -214,16 +214,21 @@ def validate(self, ctx: ConstraintContext, message: message.Message): # noqa: A
214214class CelConstraintRules (ConstraintRules ):
215215 """A constraint that has rules written in CEL."""
216216
217- _runners : list [ tuple [celpy .Runner , expression_pb2 .Constraint | private_pb2 .Constraint ]]
217+ _runners : typing . List [ typing . Tuple [celpy .Runner , typing . Union [ expression_pb2 .Constraint , private_pb2 .Constraint ] ]]
218218 _rules_cel : celtypes .Value = None
219219
220- def __init__ (self , rules : message .Message | None ):
220+ def __init__ (self , rules : typing . Optional [ message .Message ] ):
221221 self ._runners = []
222222 if rules is not None :
223223 self ._rules_cel = _msg_to_cel (rules )
224224
225225 def _validate_cel (
226- self , ctx : ConstraintContext , field_name : str , activation : dict [str , typing .Any ], * , for_key : bool = False
226+ self ,
227+ ctx : ConstraintContext ,
228+ field_name : str ,
229+ activation : typing .Dict [str , typing .Any ],
230+ * ,
231+ for_key : bool = False ,
227232 ):
228233 activation ["rules" ] = self ._rules_cel
229234 activation ["now" ] = celtypes .TimestampType (datetime .datetime .now (tz = datetime .timezone .utc ))
@@ -241,8 +246,8 @@ def _validate_cel(
241246 def add_rule (
242247 self ,
243248 env : celpy .Environment ,
244- funcs : dict [str , celpy .CELFunction ],
245- rules : expression_pb2 .Constraint | private_pb2 .Constraint ,
249+ funcs : typing . Dict [str , celpy .CELFunction ],
250+ rules : typing . Union [ expression_pb2 .Constraint , private_pb2 .Constraint ] ,
246251 ):
247252 ast = env .compile (rules .expression )
248253 prog = env .program (ast , functions = funcs )
@@ -256,7 +261,7 @@ def validate(self, ctx: ConstraintContext, message: message.Message):
256261 self ._validate_cel (ctx , "" , {"this" : _msg_to_cel (message )})
257262
258263
259- def check_field_type (field : descriptor .FieldDescriptor , expected : int , wrapper_name : str | None = None ):
264+ def check_field_type (field : descriptor .FieldDescriptor , expected : int , wrapper_name : typing . Optional [ str ] = None ):
260265 if field .type != expected and (
261266 field .type != descriptor .FieldDescriptor .TYPE_MESSAGE or field .message_type .full_name != wrapper_name
262267 ):
@@ -273,7 +278,7 @@ class FieldConstraintRules(CelConstraintRules):
273278 def __init__ (
274279 self ,
275280 env : celpy .Environment ,
276- funcs : dict [str , celpy .CELFunction ],
281+ funcs : typing . Dict [str , celpy .CELFunction ],
277282 field : descriptor .FieldDescriptor ,
278283 field_level : validate_pb2 .FieldConstraints ,
279284 ):
@@ -320,13 +325,13 @@ def _validate_value(self, ctx: ConstraintContext, field_path: str, val: typing.A
320325class AnyConstraintRules (FieldConstraintRules ):
321326 """Rules for an Any field."""
322327
323- _in : list [str ] = [] # noqa: RUF012
324- _not_in : list [str ] = [] # noqa: RUF012
328+ _in : typing . List [str ] = [] # noqa: RUF012
329+ _not_in : typing . List [str ] = [] # noqa: RUF012
325330
326331 def __init__ (
327332 self ,
328333 env : celpy .Environment ,
329- funcs : dict [str , celpy .CELFunction ],
334+ funcs : typing . Dict [str , celpy .CELFunction ],
330335 field : descriptor .FieldDescriptor ,
331336 field_level : validate_pb2 .FieldConstraints ,
332337 ):
@@ -362,7 +367,7 @@ class EnumConstraintRules(FieldConstraintRules):
362367 def __init__ (
363368 self ,
364369 env : celpy .Environment ,
365- funcs : dict [str , celpy .CELFunction ],
370+ funcs : typing . Dict [str , celpy .CELFunction ],
366371 field : descriptor .FieldDescriptor ,
367372 field_level : validate_pb2 .FieldConstraints ,
368373 ):
@@ -387,15 +392,15 @@ def validate(self, ctx: ConstraintContext, message: message.Message):
387392class RepeatedConstraintRules (FieldConstraintRules ):
388393 """Rules for a repeated field."""
389394
390- _item_rules : FieldConstraintRules | None = None
395+ _item_rules : typing . Optional [ FieldConstraintRules ] = None
391396
392397 def __init__ (
393398 self ,
394399 env : celpy .Environment ,
395- funcs : dict [str , celpy .CELFunction ],
400+ funcs : typing . Dict [str , celpy .CELFunction ],
396401 field : descriptor .FieldDescriptor ,
397402 field_level : validate_pb2 .FieldConstraints ,
398- item_rules : FieldConstraintRules | None ,
403+ item_rules : typing . Optional [ FieldConstraintRules ] ,
399404 ):
400405 super ().__init__ (env , funcs , field , field_level )
401406 if item_rules is not None :
@@ -422,17 +427,17 @@ def validate(self, ctx: ConstraintContext, message: message.Message):
422427class MapConstraintRules (FieldConstraintRules ):
423428 """Rules for a map field."""
424429
425- _key_rules : FieldConstraintRules | None = None
426- _value_rules : FieldConstraintRules | None = None
430+ _key_rules : typing . Optional [ FieldConstraintRules ] = None
431+ _value_rules : typing . Optional [ FieldConstraintRules ] = None
427432
428433 def __init__ (
429434 self ,
430435 env : celpy .Environment ,
431- funcs : dict [str , celpy .CELFunction ],
436+ funcs : typing . Dict [str , celpy .CELFunction ],
432437 field : descriptor .FieldDescriptor ,
433438 field_level : validate_pb2 .FieldConstraints ,
434- key_rules : FieldConstraintRules | None ,
435- value_rules : FieldConstraintRules | None ,
439+ key_rules : typing . Optional [ FieldConstraintRules ] ,
440+ value_rules : typing . Optional [ FieldConstraintRules ] ,
436441 ):
437442 super ().__init__ (env , funcs , field , field_level )
438443 if key_rules is not None :
@@ -480,15 +485,15 @@ class ConstraintFactory:
480485 """Factory for creating and caching constraints."""
481486
482487 _env : celpy .Environment
483- _funcs : dict [str , celpy .CELFunction ]
484- _cache : dict [descriptor .Descriptor , list [ ConstraintRules ] | Exception ]
488+ _funcs : typing . Dict [str , celpy .CELFunction ]
489+ _cache : typing . Dict [descriptor .Descriptor , typing . Union [ typing . List [ ConstraintRules ], Exception ] ]
485490
486- def __init__ (self , funcs : dict [str , celpy .CELFunction ]):
491+ def __init__ (self , funcs : typing . Dict [str , celpy .CELFunction ]):
487492 self ._env = celpy .Environment ()
488493 self ._funcs = funcs
489494 self ._cache = {}
490495
491- def get (self , descriptor : descriptor .Descriptor ) -> list [ConstraintRules ]:
496+ def get (self , descriptor : descriptor .Descriptor ) -> typing . List [ConstraintRules ]:
492497 if descriptor not in self ._cache :
493498 try :
494499 self ._cache [descriptor ] = self ._new_constraints (descriptor )
@@ -647,9 +652,9 @@ def _new_field_constraint(
647652 item_rule = self ._new_scalar_field_constraint (field , rules .repeated .items )
648653 return RepeatedConstraintRules (self ._env , self ._funcs , field , rules , item_rule )
649654
650- def _new_constraints (self , desc : descriptor .Descriptor ) -> list [ConstraintRules ]:
651- result : list [ConstraintRules ] = []
652- constraint : ConstraintRules | None = None
655+ def _new_constraints (self , desc : descriptor .Descriptor ) -> typing . List [ConstraintRules ]:
656+ result : typing . List [ConstraintRules ] = []
657+ constraint : typing . Optional [ ConstraintRules ] = None
653658 if validate_pb2 .message in desc .GetOptions ().Extensions :
654659 message_level = desc .GetOptions ().Extensions [validate_pb2 .message ]
655660 if message_level .disabled :
0 commit comments