diff options
author | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:10:44 -0400 |
---|---|---|
committer | cyfraeviolae <cyfraeviolae> | 2024-04-03 03:10:44 -0400 |
commit | 6d7ba58f880be618ade07f8ea080fe8c4bf8a896 (patch) | |
tree | b1c931051ffcebd2bd9d61d98d6233ffa289bbce /venv/lib/python3.11/site-packages/faker/providers/company/fi_FI | |
parent | 4f884c9abc32990b4061a1bb6997b4b37e58ea0b (diff) |
venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/company/fi_FI')
2 files changed, 66 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__init__.py new file mode 100644 index 0000000..adfecfb --- /dev/null +++ b/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__init__.py @@ -0,0 +1,66 @@ +from .. import Provider as CompanyProvider + + +class Provider(CompanyProvider): + formats = ( + "{{last_name}} {{company_suffix}}", + "{{last_name}} {{last_name}} {{company_suffix}}", + "{{last_name}} {{last_name}} {{company_suffix}}", + "{{last_name}}", + ) + + company_suffixes = ( + "As Oy", + "Tmi", + "Oy", + "Oyj", + "Ky", + "Osk", + "ry", + ) + + def company_business_id(self) -> str: + """ + Returns Finnish company Business Identity Code (y-tunnus). + Format is 8 digits - e.g. FI99999999,[8] last digit is a check + digit utilizing MOD 11-2. The first digit is zero for some old + organizations. This function provides current codes starting with + non-zero. + """ + + def calculate_checksum(number: str) -> str: + """Calculate the checksum using mod 11,2 method""" + factors = [7, 9, 10, 5, 8, 4, 2] + sum_ = 0 + for x, y in zip(number, factors): + sum_ = sum_ + int(x) * y + if sum_ % 11 == 1: + raise ValueError("Checksum 1 is invalid") + if sum_ % 11 == 0: + return "0" + else: + return str(11 - sum_ % 11) + + while True: + first_digit = str(self.random_digit_not_null()) + body = first_digit + self.bothify("######") + try: + cs = calculate_checksum(body) + except ValueError: + continue + return body + "-" + str(cs) + + def company_vat(self) -> str: + """ + Returns Finnish VAT identification number (Arvonlisaveronumero). + This can be calculated from company business identity code by + adding prefix "FI" and removing dash before checksum. + """ + + def convert_to_vat(business_id: str) -> str: + """ + Convert business id to VATIN + """ + return "FI" + business_id.replace("-", "") + + return convert_to_vat(self.company_business_id()) diff --git a/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-311.pyc Binary files differnew file mode 100644 index 0000000..0e78e60 --- /dev/null +++ b/venv/lib/python3.11/site-packages/faker/providers/company/fi_FI/__pycache__/__init__.cpython-311.pyc |