Page MenuHomec4science

gen_fi.py
No OneTemporary

File Metadata

Created
Mon, Oct 7, 11:52

gen_fi.py

import random
from gen_master import *
class GenDataFI(GenData):
def __init__(self, home_path):
super().__init__(home_path)
self.abrev = "fi"
self.keys = ["surname", "givenName", "dateOfBirth", "dateOfIssue", "dateOfExpiry", "sex", "identityCard", "nationality"]
self.keys_all = ["surname", "givenName", "dateOfBirth", "dateOfIssue", "dateOfExpiry", "sex", "identityCard",
"nationality", "one", "two"]
self.schema = {
"surname": "SUKUNIMI - EFTERNAMN",
"givenName": "ETUNIMET - FÖRNAMN",
"dateOfBirth": "SYNTYMÄAIKA - FÖDELSEDATUM",
"dateOfIssue": "MYÖNNETTY - UTFÄRDAT",
"dateOfExpiry": "VOIMASSA - GILTIGT T.O.M.",
"nationality": "KANSALAISUUS - NATIONALITET",
"identityCard": "KORTTINUMERO - KORTNUMMER",
"sex": "SUKUPUOLI - KÖN",
"one": "TUNNUS - KOD",
"two": "CAN"
}
# protected functions
def _get_firstName(self):
with open('data_fi.json', 'r') as fp:
data = json.load(fp)
first = []
last = []
for n in data['names']:
tmp = n.split(" ")
# if more then 2 spaces are used, it's most likely not a name
if len(tmp) != 2:
pass
else:
if len(tmp[0]) > 3:
first.append(tmp[0])
if len(tmp[1]) > 3:
last.append(tmp[1])
return first
def _get_lastName(self):
with open('data_fi.json', 'r') as fp:
data = json.load(fp)
first = []
last = []
for n in data['names']:
tmp = n.split(" ")
# if more then 2 spaces are used, it's most likely not a name
if len(tmp) != 2:
pass
else:
if len(tmp[0]) > 3:
first.append(tmp[0])
if len(tmp[1]) > 3:
last.append(tmp[1])
return last
def _get_city(self):
with open('data_fi.json', 'r') as fp:
data = json.load(fp)
locations_fi = data['addresses']
city_fi = []
for x in locations_fi:
tmp = x.split(" ")
tmp = tmp[-1].lower()
tmp = tmp[0].upper() + tmp[1:]
city_fi.append(tmp)
with open('data_geneva_city.json', 'r') as fp:
data = json.load(fp)
city_fi += data['region_fi']
return city_fi
def _gen_date_(self, d, m, y):
return self._strnum(d) + "." + self._strnum(m) + "." + self._strnum(y)
def _gen_identityCard(self):
return random.randint(100000000, 999999999)
def _get_answer(self, key):
# is not yet selfconsistent : age-height; dateofIssue-dateof Expiery
if key == "surname":
return self.fake_data["last name"]
elif key == "givenName":
return self.fake_data["first name"]
elif key == "dateOfBirth":
return self._gen_date(1940, 2020)
elif key == "dateOfIssue":
return self._gen_date(2010, 2020)
elif key == "dateOfExpiry":
return self._gen_date(2020, 2030)
elif key == "sex":
return ["M", "F"]
elif key == "identityCard":
return [self._gen_identityCard()]
elif key == "nationality":
return ["FIN"]
else:
raise NotImplementedError("key not known")

Event Timeline