import random from untitled import PACKAGE_ROOT, content, namegen, rules def generate_trait_sentence(traits): article = "An" if traits["size"][0] in "aeiou" else "A" description = f'{article} {traits["size"]} {traits["color"]} kitten with {traits["eyes"]} eyes who {traits["personality"]}' return description def generate_cat_choice(personality=None): size = random.choice(content.CAT_SIZES) color = random.choice(content.CAT_COLORS) eyes = random.choice(content.CAT_EYE_COLORS) personality = personality or random.choice(content.CAT_PERSONALITIES) traits = { "size": size, "color": color, "eyes": eyes, "personality": personality, } return generate_trait_sentence(traits), traits def generate_cat_choices(n=5): personalities = random.sample(content.CAT_PERSONALITIES, n) return [generate_cat_choice(p) for p in personalities] with open(PACKAGE_ROOT / "assets" / "cat_names.txt") as f: names = f.read().splitlines() cat_name_generator = namegen.NameGenerator(names, rules.validate_auto_gen_cat_name)