summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL')
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__init__.py45
-rw-r--r--venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-311.pycbin0 -> 2539 bytes
2 files changed, 45 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__init__.py b/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__init__.py
new file mode 100644
index 0000000..0c64ca2
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__init__.py
@@ -0,0 +1,45 @@
+from .. import Provider as SsnProvider
+
+
+class Provider(SsnProvider):
+ def ssn(self) -> str:
+ """
+ Returns a 9 digits Dutch SSN called "burgerservicenummer (BSN)".
+
+ the Dutch "burgerservicenummer (BSN)" needs to pass the "11-proef",
+ which is a check digit approach; this function essentially reverses
+ the checksum steps to create a random valid BSN (which is 9 digits).
+ """
+
+ # see http://nl.wikipedia.org/wiki/Burgerservicenummer (in Dutch)
+ def _checksum(digits):
+ factors = (9, 8, 7, 6, 5, 4, 3, 2, -1)
+ s = 0
+ for i in range(len(digits)):
+ s += digits[i] * factors[i]
+ return s
+
+ while True:
+ # create an array of first 8 elements initialized randomly
+ digits = self.generator.random.sample(range(10), 8)
+ # sum those 8 digits according to (part of) the "11-proef"
+ s = _checksum(digits)
+ # determine the last digit to make it qualify the test
+ digits.append((s % 11) % 10)
+ # repeat steps until it does qualify the test
+ if 0 == (_checksum(digits) % 11):
+ break
+
+ # build the resulting BSN
+ bsn = "".join([str(e) for e in digits])
+ # finally return our random but valid BSN
+ return bsn
+
+ vat_id_formats = ("NL#########B##",)
+
+ def vat_id(self) -> str:
+ """
+ http://ec.europa.eu/taxation_customs/vies/faq.html#item_11
+ :return: A random Dutch VAT ID
+ """
+ return self.bothify(self.random_element(self.vat_id_formats))
diff --git a/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-311.pyc b/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-311.pyc
new file mode 100644
index 0000000..9557af5
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/faker/providers/ssn/nl_NL/__pycache__/__init__.cpython-311.pyc
Binary files differ