diff options
author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
---|---|---|
committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:17:55 -0400 |
commit | 12cf076118570eebbff08c6b3090e0d4798447a1 (patch) | |
tree | 3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU | |
parent | c45662ff3923b34614ddcc8feb9195541166dcc5 (diff) |
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU')
-rw-r--r-- | venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__init__.py | 135 | ||||
-rw-r--r-- | venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-311.pyc | bin | 5401 -> 0 bytes |
2 files changed, 0 insertions, 135 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__init__.py deleted file mode 100644 index cdfb5dd..0000000 --- a/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__init__.py +++ /dev/null @@ -1,135 +0,0 @@ -from functools import reduce -from math import fmod -from typing import Optional - -from ....typing import SexLiteral -from .. import Provider as SsnProvider - - -def zfix(d: int) -> str: - return "0" + str(d) if d < 10 else str(d) - - -class Provider(SsnProvider): - def ssn(self, dob: Optional[str] = None, gender: Optional[SexLiteral] = None) -> str: - """ - Generates Hungarian SSN equivalent (személyazonosító szám or, colloquially, személyi szám) - - :param dob: date of birth as a "YYMMDD" string - this determines the checksum regime and is also encoded - in the személyazonosító szám. - :type dob: str - :param gender: gender of the person - "F" for female, M for male. - :type gender: str - :return: személyazonosító szám in str format (11 digs) - :rtype: str - """ - # Hungarian SSNs consist of 11 decimal characters, of the following - # schema: - # - # M EEHHNN SSSK - # ↑ ↑ ↑ ↑ - # gender bday ser check digit - # - # - # The M (gender) character - # ------------------------ - # - # Born <= 1999 Born > 1999 - # Male Female Male Female - # 1 2 3 4 - # - # It also includes information on original citizenship,but this is - # ignored for the sake of simplicity. - # - # Birthday - # -------- - # - # Simply encoded as EEHHNN. - # - # - # Serial - # ------ - # - # These digits differentiate persons born on the same date. - # - # - # Check digit - # ----------- - # - # For those born before 1996: - # - # k11 = (1k1 + 2k2 + 3k3... 10k10) mod 11 - # - # That is, you multiply each digit with its ordinal, add it up and - # take it mod 11. After 1996: - # - # k11 = (10k1 + 9k2 + 8k3... 1k10) mod 11 - # - - if dob: - E = int(dob[0:2]) - H = int(dob[2:4]) - N = int(dob[4:6]) - - if E <= 17: - # => person born after '99 in all likelihood... - if gender: - if gender.upper() == "F": - M = 4 - elif gender.upper() == "M": - M = 3 - else: - raise ValueError("Unknown gender - specify M or F.") - else: - M = self.generator.random_int(3, 4) - else: - # => person born before '99. - if gender: - if gender.upper() == "F": - M = 2 - elif gender.upper() == "M": - M = 1 - else: - raise ValueError("Unknown gender - specify M or F.") - else: - M = self.generator.random_int(1, 2) - elif gender: - # => assume statistically that the person will be born before '99. - E = self.generator.random_int(17, 99) - H = self.generator.random_int(1, 12) - N = self.generator.random_int(1, 30) - - if gender.upper() == "F": - M = 2 - elif gender.upper() == "M": - M = 1 - else: - raise ValueError("Unknown gender - specify M or F") - else: - M = self.generator.random_int(1, 2) - E = self.generator.random_int(17, 99) - H = self.generator.random_int(1, 12) - N = self.generator.random_int(1, 30) - - H_, N_ = zfix(H), zfix(N) - S = f"{self.generator.random_digit()}{self.generator.random_digit()}{self.generator.random_digit()}" - - vdig = f"{M}{E}{H_}{N_}{S}" - - if 17 < E < 97: - cum = [(k + 1) * int(v) for k, v in enumerate(vdig)] - else: - cum = [(10 - k) * int(v) for k, v in enumerate(vdig)] - - K = fmod(reduce(lambda x, y: x + y, cum), 11) - - return vdig + str(int(K)) - - vat_id_formats = ("HU########",) - - def vat_id(self) -> str: - """ - http://ec.europa.eu/taxation_customs/vies/faq.html#item_11 - :return: A random Hungarian VAT ID - """ - return self.bothify(self.random_element(self.vat_id_formats)) diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-311.pyc Binary files differdeleted file mode 100644 index 7bdb0a8..0000000 --- a/venv/lib/python3.11/site-packages/faker/providers/ssn/hu_HU/__pycache__/__init__.cpython-311.pyc +++ /dev/null |