summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA')
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__init__.py291
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-311.pycbin0 -> 7681 bytes
2 files changed, 291 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__init__.py
new file mode 100644
index 0000000..2e933f3
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__init__.py
@@ -0,0 +1,291 @@
+import random
+
+from typing import Optional, Tuple
+
+from .. import Provider as AutomotiveProvider
+
+
+class Provider(AutomotiveProvider):
+ plate_number_formats = ("####",)
+
+ license_region_data = {
+ "Crimea": (("AK", "KK", "TK", "MK"), "01"),
+ "Kyiv": (("AA", "KA", "TT", "TA"), "11"),
+ "Vinnytsia": (("AB", "KB", "MM", "OK"), "02"),
+ "Volyn": (("AC", "KC", "SM", "TS"), "03"),
+ "Dnipro": (("AE", "KE", "RR", "MI"), "04"),
+ "Donetsk": (("AN", "KH", "TM", "MH"), "05"),
+ "Kyiv_reg": (("AI", "KI", "TI", "ME"), "10"),
+ "Zhytomyr": (("AM", "KM", "TM", "MV"), "06"),
+ "Zakarpattia": (("AO", "KO", "MT", "MO"), "07"),
+ "Zaporizhia": (("AR", "KR", "TR", "MR"), "08"),
+ "IvanoFrankivsk": (("AT", "KT", "TO", "XS"), "09"),
+ "Kirovohrad": (("BA", "NA", "XA", "EA"), "12"),
+ "Luhansk": (("BB", "NV", "EE", "EV"), "13"),
+ "Lviv": (("BS", "NS", "SS", "ES"), "14"),
+ "Mykolaiv": (("BE", "NE", "XE", "XN"), "15"),
+ "Odessa": (("BN", "NN", "OO", "EN"), "16"),
+ "Poltava": (("BI", "NI", "XI", "EI"), "17"),
+ "Rivne": (("BK", "NK", "XK", "EK"), "18"),
+ "Sumy": (("BM", "NM", "XM", "EM"), "19"),
+ "Ternopil": (("BO", "NO", "XO", "EO"), "20"),
+ "Kharkiv": (("AX", "KX", "XX", "EX"), "21"),
+ "Kherson": (("BT", "NT", "XT", "ET"), "22"),
+ "Khmelnytsky": (("BX", "NX", "OX", "RX"), "23"),
+ "Cherkasy": (("SA", "IA", "OA", "RA"), "24"),
+ "Chernihiv": (("SV", "IV", "OV", "RV"), "25"),
+ "Chernivtsi": (("SE", "IE", "OE", "RE"), "26"),
+ "Sevastopol": (("SN", "IN", "ON", "RN"), "27"),
+ "Nationwide": (("II", "ED", "DC", "DI", "PD"), "00"),
+ }
+
+ license_plate_suffix = (
+ "AA",
+ "BA",
+ "CA",
+ "EA",
+ "HA",
+ "IA",
+ "KA",
+ "MA",
+ "OA",
+ "PA",
+ "TA",
+ "XA",
+ "AB",
+ "BB",
+ "CB",
+ "EB",
+ "HB",
+ "IB",
+ "KB",
+ "MB",
+ "OB",
+ "PB",
+ "TB",
+ "XB",
+ "AC",
+ "BC",
+ "BR",
+ "EC",
+ "HC",
+ "IC",
+ "KC",
+ "MC",
+ "OC",
+ "PC",
+ "TC",
+ "XC",
+ "AE",
+ "BE",
+ "CE",
+ "EE",
+ "HE",
+ "IE",
+ "KE",
+ "ME",
+ "OE",
+ "PE",
+ "TE",
+ "XE",
+ "AN",
+ "BN",
+ "CN",
+ "EN",
+ "HN",
+ "IN",
+ "KN",
+ "MK",
+ "ON",
+ "PN",
+ "TN",
+ "XN",
+ "AI",
+ "BI",
+ "CI",
+ "EI",
+ "HI",
+ "II",
+ "KI",
+ "MI",
+ "OI",
+ "PI",
+ "TI",
+ "XI",
+ "AK",
+ "BK",
+ "CK",
+ "EK",
+ "HK",
+ "IK",
+ "KK",
+ "MK",
+ "OK",
+ "PK",
+ "TK",
+ "XK",
+ "AM",
+ "BM",
+ "CM",
+ "EM",
+ "HM",
+ "IM",
+ "KM",
+ "MM",
+ "OM",
+ "PM",
+ "TM",
+ "XM",
+ "AO",
+ "BO",
+ "CO",
+ "EO",
+ "HO",
+ "IO",
+ "KO",
+ "MO",
+ "OO",
+ "PO",
+ "TO",
+ "XO",
+ "AP",
+ "BP",
+ "CP",
+ "EP",
+ "HP",
+ "IP",
+ "KP",
+ "MP",
+ "OP",
+ "PP",
+ "TP",
+ "XP",
+ "AT",
+ "BT",
+ "CT",
+ "ET",
+ "HT",
+ "IT",
+ "KT",
+ "MT",
+ "OT",
+ "PT",
+ "TT",
+ "XT",
+ "AX",
+ "BX",
+ "CX",
+ "EX",
+ "HX",
+ "IX",
+ "KX",
+ "MX",
+ "OX",
+ "PX",
+ "TX",
+ "XX",
+ "AY",
+ "AZ",
+ "BH",
+ "BL",
+ "BN",
+ "BQ",
+ "BR",
+ "TU",
+ "TV",
+ "TY",
+ "TZ",
+ )
+
+ vehicle_categories = ("A1", "A", "B1", "B", "C1", "C", "D1", "D", "BE", "C1E", "CE", "D1E", "DE", "T")
+
+ def __get_random_region_code(self, region_name: Optional[str] = None) -> Tuple[str, str]:
+ try:
+ if region_name is None:
+ region_name, _ = random.choice(list(self.license_region_data.items()))
+
+ prefix, region_number = self.license_region_data[region_name]
+ return random.choice(prefix), region_number
+ except KeyError:
+ region_names = ", ".join(self.license_region_data.keys())
+ raise KeyError(f"Keys name must be only {region_names}")
+
+ def license_plate(self, region_name: Optional[str] = None, temporary_plate: bool = False) -> str:
+ """Generate a license plate.
+
+ - If ``region_name`` is ``None`` (default), its value will be set to a random.
+ - If ``region_name`` is ``Kyiv``, will use this region in build of license plates.
+ - If ``temporary_plate`` is ``False`` (default), generate license plate AA0000AA format
+ - If ``temporary_plate`` is ``True``, generate temporary plate format 01 AA0000
+ 01 - 27 it's region number
+
+ :sample:
+ :sample: region_name=None, temporary_plate=False
+ :sample: region_name=None, temporary_plate=True
+ :sample: region_name="Kyiv", temporary_plate=False
+ :sample: region_name="Kyiv", temporary_plate=True
+ """
+ region, region_number = self.__get_random_region_code(region_name)
+ if temporary_plate:
+ return f"{region_number} {region}{self.plate_number()}"
+
+ number = self.plate_number()
+ series = self.plate_letter_suffix()
+ return f"{region}{number}{series}"
+
+ def plate_region_code(self, region_name: Optional[str] = None) -> str:
+ """
+ Generate plate region number
+
+ :sample:
+ :sample: region_name="Kyiv"
+ """
+ _, region_number = self.__get_random_region_code(region_name)
+ return region_number
+
+ def plate_letter_prefix(self, region_name: Optional[str] = None) -> str:
+ """
+ Generate a letter for license plates.
+
+ :sample:
+ :sample: region_name="Kyiv"
+ """
+ letters, _ = self.__get_random_region_code(region_name)
+ return letters
+
+ def plate_letter_suffix(self) -> str:
+ """
+ Generate a end letter for license plates.
+
+ :sample:
+ """
+ return self.random_element(self.license_plate_suffix)
+
+ def plate_number(self) -> str:
+ """
+ Generate a number for license plates.
+
+ :sample:
+ """
+ return self.numerify(self.random_element(self.plate_number_formats))
+
+ def diplomatic_license_plate(self) -> str:
+ """
+ Example: 'CDP 000' or 'DP 000 000' or 'S 000 000' format
+
+ :sample:
+ """
+ level = random.choice(("CDP", "DP", "S"))
+ country_code = self.random_number(3, fix_len=True)
+ car_number = self.random_number(3, fix_len=True)
+ if level == "CDP":
+ return f"{level} {country_code}"
+ return f"{level} {country_code} {car_number}"
+
+ def vehicle_category(self) -> str:
+ """
+ Generate a vehicle category code for license plates.
+
+ :sample:
+ """
+ return self.random_element(self.vehicle_categories)
diff --git a/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000..28c27e0
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/automotive/uk_UA/__pycache__/__init__.cpython-311.pyc
Binary files differ