summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
commit12cf076118570eebbff08c6b3090e0d4798447a1 (patch)
tree3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES
parentc45662ff3923b34614ddcc8feb9195541166dcc5 (diff)
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES')
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__init__.py120
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__pycache__/__init__.cpython-311.pycbin6610 -> 0 bytes
2 files changed, 0 insertions, 120 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__init__.py
deleted file mode 100644
index 0d32189..0000000
--- a/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__init__.py
+++ /dev/null
@@ -1,120 +0,0 @@
-import random
-
-from .. import Provider as BaseProvider
-
-
-class Provider(BaseProvider):
- """
- A Faker provider for the Spanish VAT IDs and DOIs
- """
-
- vat_id_formats = (
- "ES?########",
- "ES########?",
- "ES?#######?",
- )
-
- def vat_id(self) -> str:
- """
- http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
- :return: a random Spanish VAT ID
- """
-
- return self.bothify(self.random_element(self.vat_id_formats))
-
- def nie(self) -> str:
- """
- https://es.wikipedia.org/wiki/N%C3%BAmero_de_identidad_de_extranjero
- :return: a random Spanish NIE
- """
-
- first_chr = random.randrange(0, 3)
- doi_body = str(random.randrange(0, 10000000)).zfill(7)
- control = self._calculate_control_doi(str(first_chr) + doi_body)
- return "XYZ"[first_chr] + doi_body + control
-
- def nif(self) -> str:
- """
- https://es.wikipedia.org/wiki/N%C3%BAmero_de_identificaci%C3%B3n_fiscal
- :return: NIF
- """
-
- nie_body = str(random.randrange(0, 100000000)) # generate a number of a maximum of 8 characters long
- return nie_body.zfill(8) + self._calculate_control_doi(nie_body)
-
- def cif(self) -> str:
- """
- https://es.wikipedia.org/wiki/C%C3%B3digo_de_identificaci%C3%B3n_fiscal
- :return: a random Spanish CIF
- """
-
- first_chr = random.choice("ABCDEFGHJNPQRSUVW")
- doi_body = str(random.randrange(0, 10000000)).zfill(7)
- cif = first_chr + doi_body
- return cif + self._calculate_control_cif(cif)
-
- def doi(self) -> str:
- """
- https://es.wikipedia.org/wiki/Identificador_de_objeto_digital
- :return: a random Spanish CIF or NIE or NIF
- """
-
- return random.choice([self.cif, self.nie, self.nif])()
-
- def nuss(self, company: bool = False) -> str:
- """
- :param company: flag to indicate if we should generate a company NUSS
- :return: a random Spanish Social Security Number (NĂºmero de la Seguridad Social)
- """
- nuss_body_length = 8
- if company:
- nuss_body_length = 7
- province_digits = f"{random.choice(list(range(1, 54)) + [66]):02d}"
- nuss_body = "".join(str(random.randint(0, 9)) for _ in range(nuss_body_length))
- control_digits = f"{int(province_digits+nuss_body) % 97:02d}"
- nuss = f"{province_digits}{nuss_body}{control_digits}"
- return nuss
-
- @staticmethod
- def _calculate_control_doi(doi: str) -> str:
- """
- Calculate the letter that corresponds to the end of a DOI
- :param doi: calculated value so far needing a control character
- :return: DOI control character
- """
-
- lookup = "TRWAGMYFPDXBNJZSQVHLCKE"
- return lookup[int(doi) % 23]
-
- @classmethod
- def _calculate_control_cif(cls, cif: str) -> str:
- """
- Calculate the letter that corresponds to the end of a CIF
- :param cif: calculated value so far needing a control character
- :return: CIF control character
-
- Code was converted from the minified js of: https://generadordni.es/
- """
-
- sum_ = 0
- first_chr, cif_value = cif[0], cif[1:]
- for index, char in enumerate(cif_value):
- if index % 2:
- sum_ += int(char)
- else:
- sum_ += sum(map(int, str(int(char) * 2)))
- if sum_ > 10:
- sum_ = int(str(sum_)[-1])
- else:
- sum_ = sum_
- sum_ = 10 - (sum_ % 10)
-
- if first_chr in ["F", "J", "K", "N", "P", "Q", "R", "S", "U", "V", "W"]:
- return chr(64 + sum_)
- elif first_chr in ["A", "B", "C", "D", "E", "F", "G", "H", "L", "M"]:
- if sum_ == 10:
- sum_ = 0
- return str(sum_)
- else: # K, L, M # pragma: no cover
- # Old format that is no longer used, here for full compatability
- return cls._calculate_control_doi(cif) # pragma: no cover
diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__pycache__/__init__.cpython-311.pyc
deleted file mode 100644
index 58d9eef..0000000
--- a/venv/lib/python3.11/site-packages/faker/providers/ssn/es_ES/__pycache__/__init__.cpython-311.pyc
+++ /dev/null
Binary files differ