def is_valid_password(password):
    """
    Validates password complexity 
    - min length 6
    - min one upper case
    - min one lower case
    - min one special char
    :param password: the password in question
    """
    upper = lower = special = False

    for char in password:
        if not upper and char.isalnum() and char.isupper():
            upper = True
        elif not lower and char.isalnum() and char.islower():
            lower = True
        elif not special and not char.isalnum():
            special = True
        else:
            continue

    if len(password) < 6 or not upper or \
            not lower or not special:
        return False
    return True