def ssn(self, min_age=0, max_age=105, artificial=False):
        """
        Returns 11 character Finnish personal identity code (Henkilötunnus,
        HETU, Swedish: Personbeteckning). This function assigns random
        gender to person.

        HETU consists of eleven characters of the form DDMMYYCZZZQ, where
        DDMMYY is the date of birth, C the century sign, ZZZ the individual
        number and Q the control character (checksum). The sign for the
        century is either + (1800–1899), - (1900–1999), or A (2000–2099).
        The individual number ZZZ is odd for males and even for females.
        For people born in Finland its range is 002-899
        (larger numbers may be used in special cases).
        An example of a valid code is 311280-888Y.

        https://en.wikipedia.org/wiki/National_identification_number#Finland
        """
        def _checksum(hetu):
            checksum_characters = "0123456789ABCDEFHJKLMNPRSTUVWXY"
            return checksum_characters[int(hetu) % 31]

        age = datetime.timedelta(
            days=self.generator.random.randrange(min_age * 365, max_age * 365))
        birthday = datetime.date.today() - age
        hetu_date = "%02d%02d%s" % (
            birthday.day, birthday.month, str(birthday.year)[-2:])
        range = (900, 999) if artificial is True else (2, 899)
        suffix = str(self.generator.random.randrange(*range)).zfill(3)
        checksum = _checksum(hetu_date + suffix)
        separator = self._get_century_code(birthday.year)
        hetu = "".join([hetu_date, separator, suffix, checksum])
        return hetu
def ssn ( self , min_age = 0 , max_age = 105 , artificial = False ) : def _checksum ( hetu ) : checksum_characters = "0123456789ABCDEFHJKLMNPRSTUVWXY" return checksum_characters [ int ( hetu ) % 31 ] age = datetime . timedelta ( days = self . generator . random . randrange ( min_age * 365 , max_age * 365 ) ) birthday = datetime . date . today ( ) - age hetu_date = "%02d%02d%s" % ( birthday . day , birthday . month , str ( birthday . year ) [ - 2 : ] ) range = ( 900 , 999 ) if artificial is True else ( 2 , 899 ) suffix = str ( self . generator . random . randrange ( * range ) ) . zfill ( 3 ) checksum = _checksum ( hetu_date + suffix ) separator = self . _get_century_code ( birthday . year ) hetu = "" . join ( [ hetu_date , separator , suffix , checksum ] ) return hetu
Returns 11 character Finnish personal identity code (Henkilötunnus,
        HETU, Swedish: Personbeteckning). This function assigns random
        gender to person.

        HETU consists of eleven characters of the form DDMMYYCZZZQ, where
        DDMMYY is the date of birth, C the century sign, ZZZ the individual
        number and Q the control character (checksum). The sign for the
        century is either + (1800–1899), - (1900–1999), or A (2000–2099).
        The individual number ZZZ is odd for males and even for females.
        For people born in Finland its range is 002-899
        (larger numbers may be used in special cases).
        An example of a valid code is 311280-888Y.

        https://en.wikipedia.org/wiki/National_identification_number#Finland