Source code for mimesis.builtins.nl
"""Specific data provider for the Netherlands (nl)."""
from mimesis.locales import Locale
from mimesis.providers import BaseDataProvider
from mimesis.types import MissingSeed, Seed
__all__ = ["NetherlandsSpecProvider"]
[docs]
class NetherlandsSpecProvider(BaseDataProvider):
"""Class that provides special data for the Netherlands (nl)."""
[docs]
def __init__(self, seed: Seed = MissingSeed) -> None:
"""Initialize attributes."""
super().__init__(locale=Locale.NL, seed=seed)
class Meta:
name = "netherlands_provider"
datafile = None
[docs]
def bsn(self) -> str:
"""Generate a random, but valid ``Burgerservicenummer``.
:returns: Random BSN.
:Example:
255159705
"""
def _is_valid_bsn(number: str) -> bool:
total = 0
multiplier = 9
for char in number:
multiplier = -multiplier if multiplier == 1 else multiplier
total += int(char) * multiplier
multiplier -= 1
result = total % 11 == 0
return result
a, b = (100000000, 999999999)
sample = str(self.random.randint(a, b))
while not _is_valid_bsn(sample):
sample = str(self.random.randint(a, b))
return sample
[docs]
def burgerservicenummer(self) -> str:
"""Generate a random, but valid ``Burgerservicenummer``.
An alias for self.bsn()
"""
return self.bsn()