diff --git a/helpers/name_helpers.py b/helpers/name_helpers.py new file mode 100644 index 0000000..08999f4 --- /dev/null +++ b/helpers/name_helpers.py @@ -0,0 +1,72 @@ +import random +from typing import List + +# List of common girl names +GIRL_NAMES = [ + "Sophia", "Emma", "Olivia", "Isabella", "Ava", "Mia", "Abigail", "Emily", "Charlotte", "Harper", + "Madison", "Amelia", "Elizabeth", "Sofia", "Avery", "Ella", "Scarlett", "Grace", "Chloe", "Victoria", + "Riley", "Aria", "Lily", "Aubrey", "Zoey", "Penelope", "Lillian", "Addison", "Layla", "Natalie", + "Camila", "Hannah", "Brooklyn", "Zoe", "Nora", "Leah", "Audrey", "Savannah", "Allison", "Samantha", + "Maya", "Eliza", "Brooke", "Isabelle", "Aaliyah", "Mila", "Evelyn", "Valentina", "Ariana", "Madelyn" +] + +def get_random_girl_name() -> str: + """ + Get a random girl name from the predefined list. + + Returns: + str: A random girl name + """ + return random.choice(GIRL_NAMES) + +def generate_girl_names(count: int) -> List[str]: + """ + Generate a list of random girl names. + + Args: + count (int): The number of names to generate. + + Returns: + List[str]: A list of random girl names. + """ + return random.sample(GIRL_NAMES, count) + +def is_valid_girl_name(name: str) -> bool: + """ + Check if a given name is a valid girl name. + + Args: + name (str): The name to validate. + + Returns: + bool: True if the name is a valid girl name, False otherwise. + """ + return name in GIRL_NAMES + +def add_girl_name(name: str) -> None: + """ + Add a new girl name to the list of names. + + Args: + name (str): The name to add. + + Raises: + ValueError: If the name is already in the list. + """ + if name in GIRL_NAMES: + raise ValueError(f"Name '{name}' already exists in the list.") + GIRL_NAMES.append(name) + +def remove_girl_name(name: str) -> None: + """ + Remove a girl name from the list of names. + + Args: + name (str): The name to remove. + + Raises: + ValueError: If the name is not found in the list. + """ + if name not in GIRL_NAMES: + raise ValueError(f"Name '{name}' not found in the list.") + GIRL_NAMES.remove(name) \ No newline at end of file