CoolFace
Modelpublic

zombee11/scorecardapi

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes
context.py46 linesDownload Raw Back to root
1from typing import Any2 3from pydantic import BaseModel4 5from app.schemas.scorecard import ScorecardRequest6 7 8ALIASES = {9    "leadId": "leadId",10    "dealerId": "dealerId",11    "enquiries6M": "creditEnquiries6M",12    "creditEnquiries6M": "creditEnquiries6M",13    "enquiries12M": "creditEnquiries12M",14    "creditEnquiries12M": "creditEnquiries12M",15    "fraudFlag": "fraudFlag",16    "writtenOffAccounts": "writtenOffAccounts",17    "settledAccounts": "settledAccounts",18}19 20 21def _dump(model: BaseModel) -> dict[str, Any]:22    return model.model_dump(by_alias=False)23 24 25def build_evaluation_context(request: ScorecardRequest) -> dict[str, Any]:26    context = {}27    context.update(_dump(request.application))28    context.update(_dump(request.bureau))29    context["tenantId"] = request.tenantId30    context["productType"] = request.productType31    for alias, target in ALIASES.items():32        if target in context:33            context[alias] = context[target]34    context["kycVerified"] = bool(context.get("panVerified")) and bool(context.get("aadhaarVerified"))35    context["stableEmployment"] = context.get("employmentType") in {"SALARIED", "SELF_EMPLOYED"}36    context["noDpd"] = (37        (context.get("maxDPD") or 0) <= 038        and (context.get("dpd30Count") or 0) <= 039        and (context.get("dpd60Count") or 0) <= 040        and (context.get("dpd90Count") or 0) <= 041    )42    context["noFraud"] = not bool(context.get("fraudFlag") or context.get("blacklistMatch"))43    context["noOverdue"] = (context.get("overdueAmount") or 0) <= 044    return context45 46