# passenger_wsgi.py

"""
Arquivo: passenger_wsgi.py
Descrição: Ponto de entrada para servidores de produção com Phusion Passenger.

Conceito para Juniors (Production Deployment):
Quando você roda 'python app.py' no seu computador, você está usando um servidor
de desenvolvimento simples.
Quando colocamos o site na internet (Hospedagem Compartilhada, VPS com cPanel, etc.),
geralmente usamos um gerenciador de processos chamado 'Phusion Passenger'.

O Passenger não roda 'app.py'. Ele procura este arquivo específico e busca
uma variável chamada 'application'. É aqui que ligamos o nosso código ao servidor web.
"""

import os
# Em ambiente cPanel (CloudLinux/LVE + Passenger), é recomendável “travar” threads de bibliotecas numéricas porque:
# numpy/scipy/pandas/sklearn/plotly.express podem acionar OpenBLAS/OMP/MKL e tentar usar muitos threads.
# Passenger pode subir mais de um processo, e o “threads por processo” explode rápido.
# O limite real costuma vir de recursos/isolamento (LVE, pids/threads), então prevenir é melhor que remediar.
os.environ["OPENBLAS_NUM_THREADS"] = "1"
os.environ["OMP_NUM_THREADS"] = "1"
os.environ["MKL_NUM_THREADS"] = "1"
os.environ["NUMEXPR_NUM_THREADS"] = "1"
os.environ["VECLIB_MAXIMUM_THREADS"] = "1"

# Importamos o objeto 'server' (que é o Flask) do arquivo principal 'app.py'.
# O 'as application' é OBRIGATÓRIO para o Passenger funcionar, pois ele
# espera encontrar um objeto com exatamente este nome.
from app import app as application