in contrib/vm_builder/vm_builder.py [0:0]
def validate_password(password: str) -> bool:
""" Checks that the password is valid.
Args:
password: password string
Returns: True if valid, else false.
"""
if len(password) < 12 or len(password) > 123:
print_formatted_text(
HTML(
(
"<ansired>Input must be between 12 and 123 characters. "
"Please try again.</ansired>"
)
)
)
return False
if (
len([c for c in password if c.islower()]) <= 0
or len([c for c in password if c.isupper()]) <= 0
):
print_formatted_text(
HTML(
(
"<ansired>Input must contain a upper and a lower case "
"character. Please try again.</ansired>"
)
)
)
return False
if len([c for c in password if c.isdigit()]) <= 0:
print_formatted_text(
HTML(
"<ansired>Input must contain a digit. Please try again.</ansired>"
)
)
return False
if len(re.findall("[\W_]", password)) <= 0:
print_formatted_text(
HTML(
(
"<ansired>Input must contain a special character. "
"Please try again.</ansired>"
)
)
)
return False
return True