import joblib
import pandas as pd
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI(title='Churn Prediction API')
from typing import Any, Optional
from fastapi.responses import JSONResponse
from pydantic import BaseModel
from typing import List, Optional
from sqlalchemy import select
from sqlalchemy.ext.asyncio import AsyncSession
from .dataloader import DataLoader
from typing import Optional
from pydantic import BaseModel, EmailStr, Field, field_validator, model_validator
class CreateUserRequest(BaseModel):
model_config = {"extra": "forbid"}
import contextvars
import uuid
_correlation_id: contextvars.ContextVar[str] = contextvars.ContextVar(
"correlation_id", default="-"
)
import asyncio
import time
from dataclasses import dataclass, field
@dataclass
import json
import secrets
import time
from typing import Optional
import redis.asyncio as redis
import base64
import json
from datetime import datetime
from typing import Optional, Tuple
import asyncio
import time
from dataclasses import dataclass
from typing import Any, Dict
from datetime import datetime
from pydantic import BaseModel
class UserV1(BaseModel):
from sqlalchemy import select
from sqlalchemy.orm import Session
from .models import User
BATCH_SIZE = 1000
import asyncio
from collections import defaultdict
from fastapi import WebSocket