"""
Functions not dependent on advlabdb.models.
"""

import secrets
from string import ascii_letters, digits

from flask import current_app

PASSWORD_CHARS: str = ascii_letters + digits + "!%*+=?"


def randomPassword() -> str:
    password_length = current_app.config["SECURITY_PASSWORD_LENGTH_MIN"]
    return "".join(secrets.choice(PASSWORD_CHARS) for i in range(password_length))


def reportBadAttempt(message: str) -> None:
    print("BAD ATTEMPT:", message)