# --- Core framework --------------------------------------------------------- Flask==3.1.1 Werkzeug==3.1.3 Jinja2==3.1.6 itsdangerous==2.2.0 click==8.1.8 blinker==1.9.0 # --- Auth ------------------------------------------------------------------- Flask-Login==0.6.3 # --- Database --------------------------------------------------------------- SQLAlchemy==2.0.41 Flask-SQLAlchemy==3.1.1 PyMySQL==1.1.1 # MySQL driver for SQLAlchemy (use this in your URI: mysql+pymysql://...) # --- PDFs (salary slips) ---------------------------------------------------- WeasyPrint==66.0 # you’ve confirmed 66.0 works with your env # --- Data / Excel exports --------------------------------------------------- pandas>=2.2,<3.0 # used in consolidated views; looser pin for Python 3.13 wheels openpyxl>=3.1 # pandas .to_excel() engine # --- HTTP / Utilities (likely used across routes) --------------------------- requests>=2.31 # safe utility dependency (used in many integrations) # --- Production server ------------------------------------------------------ waitress>=3.0 # you have run_waitress.pyFlask-Bcrypt==1.0.1 cryptography==46.0.3