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
« prev ^ index » next coverage.py v7.13.1, created at 2026-03-29 09:03 +0000
1from typing import List, Optional
3from presidio_analyzer import Pattern, PatternRecognizer
6class NgVehicleRegistrationRecognizer(PatternRecognizer):
7 """
8 Recognizes Nigerian vehicle registration plate numbers (current format, 2011+).
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
16 Reference: https://en.wikipedia.org/wiki/Vehicle_registration_plates_of_Nigeria
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 """
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 ]
32 CONTEXT = [
33 "plate number",
34 "vehicle registration",
35 "license plate",
36 "number plate",
37 "plate",
38 "vehicle",
39 "registration",
40 ]
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 )