import os from starlette.templating import Jinja2Templates from passlib.context import CryptContext from fastapi.security import OAuth2PasswordBearer import jinja2 SECRET_KEY = os.getenv("SECRET_KEY", "nexhome-dev-secret-key-change-in-production") ALGORITHM = "HS256" # Disable Jinja2 cache to work around Python 3.14 compatibility issue _loader = jinja2.FileSystemLoader("templates") _env = jinja2.Environment(loader=_loader, autoescape=jinja2.select_autoescape(), cache_size=0) templates = Jinja2Templates(env=_env) bcrypt_context = CryptContext(schemes=["bcrypt"], deprecated="auto") oauth2_bearer = OAuth2PasswordBearer(tokenUrl="auth/token", auto_error=False)