"""Generates fake user accounts.""" from io import BytesIO import requests from PIL import Image from faker import Faker from lumi2.usermodel import User def get_random_avatar() -> Image.Image: """Returns a PIL JPEG Image of an AI-generated person.""" url = "https://thispersondoesnotexist.com/image" response = requests.get(url) if response.status_code != 200: raise RuntimeError( f"Request to '{url}' failed with code {response.status_code}." ) return Image.open(BytesIO(response.content)) def generate_random_user() -> User: """Generates a randomized user object and returns it.""" faker = Faker() return User( faker.user_name(), User.generate_password_hash(faker.password()), faker.email(), faker.first_name(), faker.last_name(), picture=get_random_avatar(), )