1"""India."""
2
3# standard
4import re
5
6# local
7from validators.utils import validator
8
9
10@validator
11def ind_aadhar(value: str):
12 """Validate an indian aadhar card number.
13
14 Examples:
15 >>> ind_aadhar('3675 9834 6015')
16 True
17 >>> ind_aadhar('3675 ABVC 2133')
18 ValidationError(func=ind_aadhar, args={'value': '3675 ABVC 2133'})
19
20 Args:
21 value: Aadhar card number string to validate.
22
23 Returns:
24 (Literal[True]): If `value` is a valid aadhar card number.
25 (ValidationError): If `value` is an invalid aadhar card number.
26 """
27 return re.match(r"^[2-9]{1}\d{3}\s\d{4}\s\d{4}$", value)
28
29
30@validator
31def ind_pan(value: str):
32 """Validate a pan card number.
33
34 Examples:
35 >>> ind_pan('ABCDE9999K')
36 True
37 >>> ind_pan('ABC5d7896B')
38 ValidationError(func=ind_pan, args={'value': 'ABC5d7896B'})
39
40 Args:
41 value: PAN card number string to validate.
42
43 Returns:
44 (Literal[True]): If `value` is a valid PAN card number.
45 (ValidationError): If `value` is an invalid PAN card number.
46 """
47 return re.match(r"[A-Z]{5}\d{4}[A-Z]{1}", value)