Coverage for presidio_analyzer / predefined_recognizers / country_specific / nigeria / ng_vehicle_registration_recognizer.py: 100%

9 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-03-29 09:03 +0000

1from typing import List, Optional 

2 

3from presidio_analyzer import Pattern, PatternRecognizer 

4 

5 

6class NgVehicleRegistrationRecognizer(PatternRecognizer): 

7 """ 

8 Recognizes Nigerian vehicle registration plate numbers (current format, 2011+). 

9 

10 The current format is: ABC-123DE 

11 - 3 letters: LGA (Local Government Area) code 

12 - Hyphen separator (may be omitted or replaced with space) 

13 - 3 digits: serial number (001-999) 

14 - 2 letters: year code + batch code 

15 

16 Reference: https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Nigeria 

17 

18 :param patterns: List of patterns to be used by this recognizer 

19 :param context: List of context words to increase confidence in detection 

20 :param supported_language: Language this recognizer supports 

21 :param supported_entity: The entity this recognizer can detect 

22 """ 

23 

24 PATTERNS = [ 

25 Pattern( 

26 "Nigeria Vehicle Registration", 

27 r"\b[A-Z]{3}[- ]?\d{3}[A-Z]{2}\b", 

28 0.5, 

29 ), 

30 ] 

31 

32 CONTEXT = [ 

33 "plate number", 

34 "vehicle registration", 

35 "license plate", 

36 "number plate", 

37 "plate", 

38 "vehicle", 

39 "registration", 

40 ] 

41 

42 def __init__( 

43 self, 

44 patterns: Optional[List[Pattern]] = None, 

45 context: Optional[List[str]] = None, 

46 supported_language: str = "en", 

47 supported_entity: str = "NG_VEHICLE_REGISTRATION", 

48 name: Optional[str] = None, 

49 ) -> None: 

50 patterns = patterns if patterns else self.PATTERNS 

51 context = context if context else self.CONTEXT 

52 super().__init__( 

53 supported_entity=supported_entity, 

54 patterns=patterns, 

55 context=context, 

56 supported_language=supported_language, 

57 name=name, 

58 )