import random
import string


def load_file(filename):
    """
    We load a file and make a list out of it. Note that the same function is 
    used for both files (both adjectives and subjects). Functions should be 
    made as generic as possible.

    There IS a problem you can fix, some logins will have spaces in them. Try
    to remove them in this function!
    """
    words = []
    with open(filename, "r") as fp:
        lines = fp.readlines()
        for line in lines:
            words.append(line.strip())          # what does strip() do, what does append() do? remember CTRL+Q!
    return words


def generate_username():
    """
    We'll generate a random pair of adjectives and subjects from two wordlists.
    You NEED to have both files in you python project for this to work! Note 
    the capitalize method call to make it all prettier...
    """
    adjectives = load_file("./adjectives.txt")
    subjects = load_file("./subjects.txt")
    adjective = random.choice(adjectives)
    subject = random.choice(subjects)
    username = adjective.capitalize() + subject.capitalize()
    return username


def generate_password(length=10, complictated=True):
    """
    We generate a password with default settings. You can overide these by
    changing the arguments in the function call.
    """
    password = ""
    if complictated:
        chars = string.ascii_letters + string.digits + string.punctuation
    else:
        chars = string.ascii_letters
    for i in range(0, length):
        password += random.choice(chars)
    return password


if __name__ == "__main__":
    # let's do some testing!
    username_test = generate_username()
    print(username_test)
    password_test = generate_password()
    print(password_test)
