in datasets/thelook_ecommerce/pipelines/_images/run_thelook_kub/fake.py [0:0]
def __post_init__(self):
self.gender = self.random_item(population=["M", "F"]) # uniform distribution
if self.gender == "M":
self.first_name = fake.first_name_male()
self.traffic_source = self.random_item(
population=["Organic", "Facebook", "Search", "Email", "Display"],
distribution=[0.15, 0.06, 0.7, 0.05, 0.04],
)
if self.gender == "F":
self.first_name = fake.first_name_female()
self.traffic_source = self.random_item(
population=["Organic", "Facebook", "Search", "Email", "Display"],
distribution=[0.15, 0.06, 0.7, 0.05, 0.04],
)
self.last_name = fake.last_name_nonbinary()
address = Address(get_address())
self.state = address.state
self.street_address = address.street
self.postal_code = address.postal_code
self.city = address.city
self.country = address.country
self.latitude = address.latitude
self.longitude = address.longitude
self.email = f"{self.first_name.lower()}{self.last_name.lower()}@{fake.safe_domain_name()}"
self.age = random.randrange(MIN_AGE, MAX_AGE)
# weight newer users/orders
choice = random.choices([0, 1], weights=[0.975, 0.025])[0]
if choice == 0:
self.created_at = created_at(datetime.datetime(2019, 1, 1))
if choice == 1:
self.created_at = created_at(
datetime.datetime.now() - datetime.timedelta(days=7)
)
num_of_orders = random.choices(
population=[0, 1, 2, 3, 4], weights=[0.2, 0.5, 0.2, 0.05, 0.05]
)[0]
if num_of_orders == 0:
pass
else:
for _ in range(num_of_orders):
orders.append(dataclasses.asdict(Order(user=self)))