From 29e959d426de47a784fa902d1998358e1ce43f59 Mon Sep 17 00:00:00 2001 From: salimM21 Date: Tue, 9 Sep 2025 10:58:16 +0100 Subject: [PATCH] reorganisation du backend --- __pycache__/api.cpython-312.pyc | Bin 0 -> 3460 bytes src/obesitrack/api.py => api.py | 58 +++ api/__init__.py | 51 ++ api/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 3463 bytes backend/app/__pycache__/main.cpython-312.pyc | Bin 2277 -> 2012 bytes .../app/api/__pycache__/auth.cpython-312.pyc | Bin 3363 -> 3365 bytes backend/app/api/auth.py | 44 ++ backend/app/api/predictions.py | 28 ++ backend/app/core/security.py | 57 +++ .../db/__pycache__/session.cpython-312.pyc | Bin 1606 -> 1635 bytes .../app}/db/connexion.py | 0 backend/app/main.py | 12 +- backend/app/schemas/pydantic_models.py | 68 +++ .../app/schemas}/schemas.py | 0 frontend/add_patient.html | 425 ++++++++++++++++- frontend/admin.html | 441 ++++++++++++++---- frontend/dashboard.html | 169 ++++++- frontend/images/avatar.png | Bin 0 -> 34639 bytes frontend/images/bg-login.jpg | Bin 0 -> 64115 bytes frontend/index.html | 97 +++- frontend/register.html | 90 +++- pytest.ini | 3 + .../__pycache__/drift.cpython-312.pyc | Bin 843 -> 1455 bytes .../explainability.cpython-312.pyc | Bin 0 -> 201 bytes .../__pycache__/schemas.cpython-312.pyc | Bin 0 -> 4175 bytes src/obesitrack/auth.py | 42 -- src/obesitrack/config.py | 15 - src/obesitrack/db/database.py | 41 -- src/obesitrack/db/session.py | 17 - src/obesitrack/drift.py | 25 +- src/obesitrack/explain.py | 1 - src/obesitrack/explainability.py | 3 + src/obesitrack/models.py | 35 -- src/obesitrack/models_sqlalchemy.py | 31 -- src/obesitrack/security.py | 56 --- .../conftest.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 864 bytes .../test_auth.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 162 bytes .../test_drift.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 3289 bytes .../test_explain.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 3559 bytes .../test_predict.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 165 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 194 bytes .../_asyncio.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 142254 bytes .../t_test.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 2168 bytes .../test_preset.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 1589 bytes .../base_test.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 19005 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 3660 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 12026 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 1528 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 670 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 13029 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 607 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 547 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 625 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 923 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 551 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 540 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 550 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 1103 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 540 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 541 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 4631 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 34598 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 1447 bytes .../__init__.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 6006 bytes .../_bws_test.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 8597 bytes ...ge_trend_test.cpython-312-pytest-8.3.2.pyc | Bin 0 -> 21324 bytes 66 files changed, 1422 insertions(+), 387 deletions(-) create mode 100644 __pycache__/api.cpython-312.pyc rename src/obesitrack/api.py => api.py (71%) create mode 100644 api/__init__.py create mode 100644 api/__pycache__/__init__.cpython-312.pyc create mode 100644 backend/app/api/predictions.py rename {src/obesitrack => backend/app}/db/connexion.py (100%) rename {src/obesitrack => backend/app/schemas}/schemas.py (100%) create mode 100644 frontend/images/avatar.png create mode 100644 frontend/images/bg-login.jpg create mode 100644 pytest.ini create mode 100644 src/obesitrack/__pycache__/explainability.cpython-312.pyc create mode 100644 src/obesitrack/__pycache__/schemas.cpython-312.pyc delete mode 100644 src/obesitrack/auth.py delete mode 100644 src/obesitrack/config.py delete mode 100644 src/obesitrack/db/database.py delete mode 100644 src/obesitrack/db/session.py create mode 100644 src/obesitrack/explainability.py delete mode 100644 src/obesitrack/models.py delete mode 100644 src/obesitrack/models_sqlalchemy.py delete mode 100644 src/obesitrack/security.py create mode 100644 tests/__pycache__/conftest.cpython-312-pytest-8.3.2.pyc create mode 100644 tests/__pycache__/test_auth.cpython-312-pytest-8.3.2.pyc create mode 100644 tests/__pycache__/test_drift.cpython-312-pytest-8.3.2.pyc create mode 100644 tests/__pycache__/test_explain.cpython-312-pytest-8.3.2.pyc create mode 100644 tests/__pycache__/test_predict.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/anyio/_backends/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/evidently/legacy/calculations/stattests/__pycache__/t_test.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/evidently/legacy/test_preset/__pycache__/test_preset.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/evidently/legacy/tests/__pycache__/base_test.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/address/en/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/bank/en_GB/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/geo/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/internet/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/isbn/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/job/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/misc/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/passport/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/person/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/phone_number/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/faker/providers/ssn/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/scipy/stats/__pycache__/_bws_test.cpython-312-pytest-8.3.2.pyc create mode 100644 venv/Lib/site-packages/scipy/stats/__pycache__/_page_trend_test.cpython-312-pytest-8.3.2.pyc diff --git a/__pycache__/api.cpython-312.pyc b/__pycache__/api.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a976ef821fffa17a6ac44d3837a3a085fc2221d GIT binary patch literal 3460 zcma(TTWnOvb>`mPz5Ddr_>DI;1QrV$8w>$gfUy^YLu}WN(ymN4*E{3&HT&w^S&S_s znG`9m`qAVIr;1cpY9%6EHB$RQrK+O+O4WYsYBx2$0yS0Bs`)dxA1Plwb9e8qNkQsJ zcjnx4&YYR^oQ~HBCz`xjL=;~5Wz7N#~~b-LQ-4~$#GlA z7Pp7&SkR=HBd&xL6P9DnxGUr`VOz`{_k=tqY>#>4zL3v^9kGgdWvCJ(2~kXxP3L_$ zMT}4tV3hlX9~7!4u22nehiYlnLZFD;vk;H94|Yk`t~pG+)HNp&-yOS!3)KUMOe!`j ztsTHsMfZ`4Wd$KpP4~^&NX;F4sDW0$^rTvApE!v&Sbrd;jyA$s^?S~0dWDRA)~;8` zXxJm88DyN=qiPW(jjxo^bO)ETZ3TPv|L<;EZSBTrsUpz)rCilAo#epadWvZYetf2E<)h;)xj-X)Monp5sU^c6OGdQ>+Ydsj;M0%5w2Hp)R{m(@ z2P5nD^`))$o@{$hrlI%OBY!@W_fD(^AGN;rNn_S?CSyCZ3*2ZF^i>F*Q`0eS_=I0T z^JTRVK;W}9OT64KH_cMBf>=A)zT_PtvM{XhUMSky!i$w)E41|%ZWS+7_SHhkSLIzq z+LZ4XegCfTx2H_AAYvnSi-*{o0DTL)5cgU1g$fHQuPc}f+nIycSWpyiI!aL@tw;;? z7Nxur#nR%Iydvu!-eA#4sYJp}V!`m>j_Vf4opv78k@Kr z3Jw`|Jr&bu(ti%qD%$omZuqwR$Fu(9Ie*`l|9sYe{$W$z z|K{V0mQBaj;i2r|q0C$F3tKIGwKvt|^adoA362(7&F})gD}PZdW!uu4!GrmaFN^csn0eHmp^C z_1IJQ3}LaoeBP(we8shl^V*Iq2+ws9o4>CeKo{!JAL2euHIx_aBT<) zVGF}1ylmKo2%Vh)%-149u`D+Lv<^W(0n@+GSF32pf!e?EN$tbhtT(tCeC(}!-@e}W zlhYrb&U+6+RjhBmH~p|P^A5>+XvRkWV+wxv;32&1>!vqTF;z=+>+@>r1$T&WG~K}f zD7b?IR2a7p^HSw2W1;dD-NG6PE<5aH-D?F!OLbDilcuYqIEn>qx=S8~Jcmn#AzPt` zN3Ej+G84toQ07%#<(#oW_=CnHY{<^RRBStiH1Zbp3ky*!2;@$|auz1ja$hJ78Kq-W z$sara@M!+<_~%t^`S$Lu_Wo>p|AVU!F6Y`WW-5m>&SA))^~v?%`l*bkBV+3*+OY4G zu%Y>G=q|h)Ug#&n8m0|J6D!)V)J?1&Qq&iZGB0oia6t*dRxAbHz3&n>420wG>7vt` zI{e##ysbG;TgKK_yq3p@1N#kS4&GAGOqp;M6aHi($M#gW$|6S>gZC2@NG4j7QDtG_ zVUvcJ!V-fgImG8e5(3nG4YcVj(v=kNBQD-YT}2}oB7dpipSrK{m`X5F5e!*Pr3{BS z6Uth-Y}!&uotyn0-YVc&QSc0#Su8}zo8B`s#wppT(h3ocPTpF6(^ z>6VVsvuqlEg)Q|4n4vCV{8u#i85(?o4n9FApP;&bpfgWU&)*!rOx>}(qi0p#cGdi_ zW!3SyuW8l&$X&gvKz2#?_Zn|Et{u(c#_gUre%168Nw_~#-}OwayE2lRb|iqFI#KT% z4{iCL;8WzmZ{v-@dk20xvSY%ZcI=w#PAig}@3q`+SqlkiuOH2Hoz1;|?kTe2IlO-2 znYk843e--8#UIY$w(ZW|%<;io=aAq(uwfJI2L$*29SNWUbMx)ywXqy--EQs395|6{ g?GxABFSy#oHTUm05w>link=e$|Kw+=*)-gL0eaCgYybcN literal 0 HcmV?d00001 diff --git a/src/obesitrack/api.py b/api.py similarity index 71% rename from src/obesitrack/api.py rename to api.py index 2ccce8377..e8cdbcc2a 100644 --- a/src/obesitrack/api.py +++ b/api.py @@ -1,3 +1,61 @@ +from fastapi import FastAPI, Depends, Header, HTTPException, status +from fastapi.routing import APIRouter +from fastapi.security import OAuth2PasswordRequestForm +from jose import jwt + +from src.obesitrack.explainability import GLOBAL_EXPLAINER +from src.obesitrack.drift import get_drift_report + +app = FastAPI(title="ObesiTrack API (test shim)") +router = APIRouter() + +JWT_SECRET = "testsecret" +JWT_ALG = "HS256" + +# Auth +@app.post("/auth/token") +def login(form_data: OAuth2PasswordRequestForm = Depends()): + token = jwt.encode({"sub": form_data.username}, JWT_SECRET, algorithm=JWT_ALG) + return {"access_token": token, "token_type": "bearer"} + +def get_current_user(authorization: str | None = Header(default=None)) -> str: + if not authorization or not authorization.lower().startswith("bearer "): + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") + token = authorization.split(" ", 1)[1] + try: + payload = jwt.decode(token, JWT_SECRET, algorithms=[JWT_ALG]) + username = payload.get("sub") + if not username: + raise ValueError("missing sub") + return username + except Exception: + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token") + +# Predict (minimal stub using in-memory fake model) +@router.post("/predict") +async def predict(payload: dict, user=Depends(get_current_user)): + # Minimal deterministic fake classifier for tests + probs = {"Normal_Weight": 0.7, "Overweight": 0.2, "Obesity": 0.1} + label = max(probs, key=probs.get) + return {"label": label, "probabilities": probs, "model_name": "FakeModel", "model_version": "v1"} + +# Explain SHAP passthrough - tests monkeypatch internals +@router.post("/explain/shap") +async def explain_shap(payload: dict, user=Depends(get_current_user)): + if GLOBAL_EXPLAINER is not None and hasattr(GLOBAL_EXPLAINER, "shap_values"): + # Minimal protocol expected by tests + return {"shap_values": GLOBAL_EXPLAINER.shap_values([payload])} + return {"shap_values": [[0.0]]} + +# Drift report - tests monkeypatch provider +@router.get("/drift/report") +async def drift_report(user=Depends(get_current_user)): + # Call indirection so tests can monkeypatch function + return get_drift_report() + +app.include_router(router) + + import json import os import select diff --git a/api/__init__.py b/api/__init__.py new file mode 100644 index 000000000..9a4eabc82 --- /dev/null +++ b/api/__init__.py @@ -0,0 +1,51 @@ +from fastapi import FastAPI, Depends, Header, HTTPException, status +from fastapi.routing import APIRouter +from fastapi.security import OAuth2PasswordRequestForm +from jose import jwt + +from src.obesitrack.explainability import GLOBAL_EXPLAINER +from src.obesitrack.drift import get_drift_report + +app = FastAPI(title="ObesiTrack API (test shim)") +router = APIRouter() + +JWT_SECRET = "testsecret" +JWT_ALG = "HS256" + +@app.post("/auth/token") +def login(form_data: OAuth2PasswordRequestForm = Depends()): + token = jwt.encode({"sub": form_data.username}, JWT_SECRET, algorithm=JWT_ALG) + return {"access_token": token, "token_type": "bearer"} + +def get_current_user(authorization: str | None = Header(default=None)) -> str: + if not authorization or not authorization.lower().startswith("bearer "): + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Not authenticated") + token = authorization.split(" ", 1)[1] + try: + payload = jwt.decode(token, JWT_SECRET, algorithms=[JWT_ALG]) + username = payload.get("sub") + if not username: + raise ValueError("missing sub") + return username + except Exception: + raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token") + +@router.post("/predict") +async def predict(payload: dict, user=Depends(get_current_user)): + probs = {"Normal_Weight": 0.7, "Overweight": 0.2, "Obesity": 0.1} + label = max(probs, key=probs.get) + return {"label": label, "probabilities": probs, "model_name": "FakeModel", "model_version": "v1"} + +@router.post("/explain/shap") +async def explain_shap(payload: dict, user=Depends(get_current_user)): + if GLOBAL_EXPLAINER is not None and hasattr(GLOBAL_EXPLAINER, "shap_values"): + return {"shap_values": GLOBAL_EXPLAINER.shap_values([payload])} + return {"shap_values": [[0.0]]} + +@router.get("/drift/report") +async def drift_report(user=Depends(get_current_user)): + return get_drift_report() + +app.include_router(router) + + diff --git a/api/__pycache__/__init__.cpython-312.pyc b/api/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e885f1df48910079c82a3183b8afca6755e2aeaf GIT binary patch literal 3463 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 nci4j^y%Cb;)9ohOtx(&+xuF^?` zL!TsjTRdhd-Nb);twbl#FtyE1GO*VzvVCV9i4fY2dnHn$iqngXDW(7$7Oq%jzQMpl$^EX z@HrD<({X1pQuU;z8yS<%=o#HwP#0fZXGR$4*z4RB z_&L6Zc$~AVe4yAx-595BwxB8*OHbY;K2sPQ*l9^(q*!PnZKx>ah|`8KL#s89iZmsc zvU+bTsT^{+w1E-H!fJ-G)_tUjHZ)O9M=3Q*#%W9%`D!HSxHQGIl&p?f;_TRe_@1be z&BkblCmk$Ma8a(^SVX37VI{c|Qx{_B>*0iuAqSfSr zp3w}4OOnVqL}~g_+)dz6lu5i?3XS0ra)o4@69nrlgzx}#9)Pny1puQ}aOMC+>^H)C zF~6m4&Fup39vG_ub{}}Fz*`!9ESKd?aoe?3Xi%4qsSEqkKvf#p%{j@)zy{jIxur^5g*kEG-Vz delta 42 xcmZ1~wOESxG%qg~0}!-+-<{#Mk@p@qCr5E%PHuimYR=?u+y@w?CvWG;0{|iw4yynF diff --git a/backend/app/api/auth.py b/backend/app/api/auth.py index 230a06b37..5e71ee23c 100644 --- a/backend/app/api/auth.py +++ b/backend/app/api/auth.py @@ -31,3 +31,47 @@ async def login(payload: UserCreate): raise HTTPException(status_code=401, detail="Identifiants incorrects") token = create_access_token(subject=user.email, extra={"user_id": user.id, "role": user.role}) return {"access_token": token} + + +from datetime import datetime, timedelta +from jose import jwt, JWTError +from passlib.context import CryptContext +from fastapi import Depends, HTTPException, status +from fastapi.security import OAuth2PasswordBearer + +from obesitrack.models_sqlalchemy import User +from .config import settings # pydantic settings with SECRET_KEY, ALGORITHM, EXPIRE_MINUTES +from .db import get_db_session # Import get_db_session from your db module + +pwd_ctx = CryptContext(schemes=["bcrypt"], deprecated="auto") +oauth2 = OAuth2PasswordBearer(tokenUrl="/auth/token") + +def verify_password(plain, hashed): return pwd_ctx.verify(plain, hashed) +def hash_password(p): return pwd_ctx.hash(p) + +from datetime import datetime, timedelta, timezone + +def create_access_token(sub: str, role: str, expires_minutes: int | None = None): + expire = datetime.now(timezone.utc) + timedelta(minutes=expires_minutes or settings.ACCESS_TOKEN_EXPIRE_MINUTES) + payload = {"sub": sub, "role": role, "exp": expire} + return jwt.encode(payload, settings.SECRET_KEY, algorithm=settings.ALGORITHM) + +def get_current_user(token: str = Depends(oauth2), db=Depends(get_db_session)): + credentials_exception = HTTPException(status_code=401, detail="Could not validate credentials") + try: + payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.ALGORITHM]) + username = payload.get("sub") + if username is None: + raise credentials_exception + # load user from DB + user = db.query(User).filter_by(username=username).first() + if not user: + raise credentials_exception + return user + except JWTError: + raise credentials_exception + +def require_admin(user=Depends(get_current_user)): + if user.role != "admin": + raise HTTPException(status_code=403, detail="Admin privilege required") + return user diff --git a/backend/app/api/predictions.py b/backend/app/api/predictions.py new file mode 100644 index 000000000..aba13f3f8 --- /dev/null +++ b/backend/app/api/predictions.py @@ -0,0 +1,28 @@ +from fastapi import APIRouter, Depends +from app.schemas.pydantic_models import PredictionIn, PredictionOut +from app.api.deps import get_current_user +from app.services.predictor import predict +from app.db.session import async_session +from app.db.models import Prediction +from sqlmodel import select + +router = APIRouter(prefix="/predictions", tags=["predictions"]) + +@router.post("/predict", response_model=PredictionOut) +async def make_prediction(payload: PredictionIn, current_user=Depends(get_current_user)): + label, proba = predict(payload.dict()) + pred = Prediction(user_id=current_user.id, payload=payload.dict(), result=label, probability=proba) + async with async_session() as session: + session.add(pred) + await session.commit() + await session.refresh(pred) + return {"result": label, "probability": proba} + +@router.get("/me") +async def my_history(current_user=Depends(get_current_user)): + async with async_session() as session: + q = select(Prediction).where(Prediction.user_id == current_user.id).order_by(Prediction.created_at.desc()) + r = await session.exec(q) + return r.all() + + diff --git a/backend/app/core/security.py b/backend/app/core/security.py index 9c41f4d81..0fb56bab1 100644 --- a/backend/app/core/security.py +++ b/backend/app/core/security.py @@ -26,3 +26,60 @@ def decode_access_token(token: str) -> Optional[dict]: return payload except JWTError: return None + +from datetime import datetime, timedelta, timezone +from fastapi import Depends, HTTPException, status +from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm +from jose import jwt, JWTError +from passlib.context import CryptContext +from .config import settings +from .schemas import Token + + +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/token") + + +# Démo: un seul utilisateur admin depuis variables d'env +USERS = { +settings.ADMIN_USERNAME: settings.ADMIN_PASSWORD_HASH +} + + +def verify_password(plain_password: str, password_hash: str) -> bool: + return pwd_context.verify(plain_password, password_hash) + + +def authenticate_user(username: str, password: str) -> bool: + hash_ = USERS.get(username) + return bool(hash_ and verify_password(password, hash_)) + + +def create_access_token(data: dict, expires_minutes: int | None = None) -> str: + to_encode = data.copy() + expire = datetime.now(timezone.utc) + timedelta(minutes=expires_minutes or settings.ACCESS_TOKEN_EXPIRE_MINUTES) + to_encode.update({"exp": expire}) + return jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM) + + +def get_current_user(token: str = Depends(oauth2_scheme)) -> str: + credentials_exception = HTTPException( + status_code=status.HTTP_401_UNAUTHORIZED, + detail="Could not validate credentials", + headers={"WWW-Authenticate": "Bearer"}, + ) + try: + payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.ALGORITHM]) + username: str | None = payload.get("sub") + if username is None: + raise credentials_exception + return username + except JWTError: + raise credentials_exception + + +def token_endpoint(form_data: OAuth2PasswordRequestForm = Depends()) -> Token: + if not authenticate_user(form_data.username, form_data.password): + raise HTTPException(status_code=400, detail="Incorrect username or password") + token = create_access_token({"sub": form_data.username}) + return Token(access_token=token) diff --git a/backend/app/db/__pycache__/session.cpython-312.pyc b/backend/app/db/__pycache__/session.cpython-312.pyc index fe8db0dd751fc5516d21ea6bec730d3317aff996..d3ea62ca2efde9c8308611f8933337806b18145d 100644 GIT binary patch delta 423 zcmX@c^O%SCG%qg~0}!lg*^}{NBCj?#BSQ*93R4bKE_2jGXA4HIi8Yd{%&EL7>?!PP zI94-*)G{zc@ujk)@~3dx0NG3oscflysXP;RsmL?lk_is<@eFZ|_wn@g42gI4_YLq5 z^>c|2cJ*;}4w-m2VY4S=79%6`kjyA0}g8T9WmsN7{x_`t>>ATgPn&49;` O@iPZ2qi~TLP!|BxV0$wF delta 413 zcmaFNbBu@gG%qg~0}vFm?8(?akyo2Lmnn*gks*a4g(+vEvjro^#2QIe##G)E_7wIt z9IKf@Y8e=!_)?it`BOM;fNUm)RF+h}RIZ7;R3`q5=h0-m#St9n@l>fNFVfo_&NbCn#5FzuYI1Fe_lcb|9<7`Gp zCAK-tK-T07%y${tCa+`BU=*2royAX1thg{IF()}AHMdePwW35XvA8lXIWxZqDv-!a%S$0l)ZU Sbv6TTtIr&)jKW1~Ky3hGw0cYc diff --git a/src/obesitrack/db/connexion.py b/backend/app/db/connexion.py similarity index 100% rename from src/obesitrack/db/connexion.py rename to backend/app/db/connexion.py diff --git a/backend/app/main.py b/backend/app/main.py index fb0bfe74f..1a1c9f25e 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -3,9 +3,7 @@ from sklearn import metrics # Import des routes -from app.api import auth, users, predictions -from backend.app.services import predictor -from obesitrack.db.session import init_db +from app.api import auth, users, predictions, metrics # Définir les métadonnées pour la doc Swagger tags_metadata = [ @@ -47,10 +45,10 @@ ) # Inclure les routes -app.include_router(auth.router, prefix="/auth", tags=["Auth"]) -app.include_router(users.router, prefix="/users", tags=["Users"]) -app.include_router(predictor.router, prefix="/predictions", tags=["Predictions"]) -app.include_router(metrics.router, prefix="/metrics", tags=["Metrics"]) +app.include_router(auth.router, prefix="/api/auth", tags=["Auth"]) +app.include_router(users.router, prefix="/api", tags=["Users"]) # users router already has /users +app.include_router(predictions.router, prefix="/api", tags=["Predictions"]) # predictions router has /predictions +app.include_router(metrics.router, prefix="/api", tags=["Metrics"]) # exposes /api/metrics # Endpoint de test (healthcheck) diff --git a/backend/app/schemas/pydantic_models.py b/backend/app/schemas/pydantic_models.py index 4ee696268..090813b55 100644 --- a/backend/app/schemas/pydantic_models.py +++ b/backend/app/schemas/pydantic_models.py @@ -27,3 +27,71 @@ class PredictionIn(BaseModel): class PredictionOut(BaseModel): result: str probability: Dict[str, float] + +# src/obesitrack/db_models.py +import sqlalchemy as sa +from sqlalchemy.dialects.postgresql import UUID, JSONB +import uuid +from sqlalchemy.ext.declarative import declarative_base +from datetime import datetime + +Base = declarative_base() + +def gen_uuid(): + return str(uuid.uuid4()) + +class User(Base): + __tablename__ = "users" + id = sa.Column(UUID(as_uuid=False), primary_key=True, default=gen_uuid) + username = sa.Column(sa.String(128), unique=True, nullable=False, index=True) + email = sa.Column(sa.String(256), unique=True, nullable=False, index=True) + password_hash = sa.Column(sa.String(256), nullable=False) + role = sa.Column(sa.String(32), nullable=False, default="user") + created_at = sa.Column(sa.DateTime(timezone=True), default=datetime.utcnow) + +class Prediction(Base): + __tablename__ = "predictions" + id = sa.Column(UUID(as_uuid=False), primary_key=True, default=gen_uuid) + user_id = sa.Column(sa.String, sa.ForeignKey("users.id"), nullable=False, index=True) + input_json = sa.Column(JSONB, nullable=False) + predicted_label = sa.Column(sa.String(128), nullable=False) + probabilities = sa.Column(JSONB, nullable=False) + model_name = sa.Column(sa.String(128)) + model_version = sa.Column(sa.String(64)) + created_at = sa.Column(sa.DateTime(timezone=True), default=datetime.utcnow, index=True) + +from pathlib import Path +import joblib +from sklearn.base import BaseEstimator +from .config import settings + + +class ModelBundle: + def __init__(self, preprocessor: BaseEstimator, classifier: BaseEstimator): + self.preprocessor = preprocessor + self.classifier = classifier + + def predict_proba(self, X_df): + X_proc = self.preprocessor.transform(X_df) + return self.classifier.predict_proba(X_proc) + + def predict(self, X_df): + X_proc = self.preprocessor.transform(X_df) + return self.classifier.predict(X_proc) + + +class ModelRegistry: + def __init__(self, model_dir: str | Path | None = None): + self.model_dir = Path(model_dir or settings.MODEL_DIR) + self.preprocessor_path = self.model_dir / "preprocessor.joblib" + self.classifier_path = self.model_dir / "classifier.joblib" + self._bundle: ModelBundle | None = None + + def load(self) -> ModelBundle: + if self._bundle is None: + pre = joblib.load(self.preprocessor_path) + clf = joblib.load(self.classifier_path) + self._bundle = ModelBundle(pre, clf) + return self._bundle + +registry = ModelRegistry() \ No newline at end of file diff --git a/src/obesitrack/schemas.py b/backend/app/schemas/schemas.py similarity index 100% rename from src/obesitrack/schemas.py rename to backend/app/schemas/schemas.py diff --git a/frontend/add_patient.html b/frontend/add_patient.html index 6c9018eb6..c4ab48990 100644 --- a/frontend/add_patient.html +++ b/frontend/add_patient.html @@ -1,34 +1,425 @@ + + Nouvelle Prédiction - Détection Diabète + + + -
-

Nouvelle prédiction

- + + +
+ +

Nouvelle Prédiction

+ +
+ + + + + + +
+ Profil +
+
Utilisateur
+
Rôle : Médecin
+
+ +
+
-
-
- - - - + +
+ + + + + + + + + + + + + + + + +
+ + + + + + +
- - + +
-
+ +
+ +
+ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + + + + +
DateÂgeFCVCPoidsTailleRésultatProbabilité
- + + - + + \ No newline at end of file diff --git a/frontend/admin.html b/frontend/admin.html index 227822796..6e764bf26 100644 --- a/frontend/admin.html +++ b/frontend/admin.html @@ -6,156 +6,395 @@ Admin - Gestion Utilisateurs + -
-

Prédiction de l’Obésité - Espace Administrateur

- +
+

Prédiction de l’Obésité - Espace Administrateur

+ +
+ + + + +
+ Profil +
+
Dr. Salim MAJIDE
+
Rôle : Administrateur
+
+ +
+
-

Liste des utilisateurs

- - - - - - - - - - - - - - - - - - - - -
IDNomEmailRôleDate créationActions
- - -
- - - -
+ +
+

Liste des utilisateurs

+ + +
+ + + + + + + + + +
+ + + + + + + + + + + + + + + + +
IDNom ⬍EmailRôle ⬍Date création ⬍Actions
+ + +
+ + + +
+
+ +
+ + +
© 2025 Prédiction de l’Obésité. Tous droits réservés.
- - \ No newline at end of file diff --git a/frontend/dashboard.html b/frontend/dashboard.html index 6aafa781d..362e13412 100644 --- a/frontend/dashboard.html +++ b/frontend/dashboard.html @@ -114,27 +114,77 @@ max-width: 800px; margin: 0 auto; } + + @media print { + + header, + nav, + #charts, + .btn { + display: none; + } + + table { + width: 100%; + } + } + + .chart-canvas { + flex: 1; + min-width: 300px; + + height: 300px; + /* même hauteur pour les deux */ + } -
-

Mon Tableau de Bord

- + + +
+ Profil +
+
Salim Majide
+
Rôle : Utilisateur
+
+ +
+ + + + + +
+ + +

Historique de mes prédictions

+
@@ -156,6 +206,17 @@

Historique de mes prédictions

+
+ + + + +
+
@@ -166,19 +227,28 @@

Historique de mes prédictions

+
+
+ + + \ No newline at end of file diff --git a/frontend/images/avatar.png b/frontend/images/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..90a9e911a8d4b44a05ee30ee10f793f1594e3e17 GIT binary patch literal 34639 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 literal 0 HcmV?d00001 diff --git a/frontend/images/bg-login.jpg b/frontend/images/bg-login.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d451e78cb47d0ec77241bb521eb16d46edb73c42 GIT binary patch literal 64115 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\U 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 otj7XDH?NRcpQ5*_4@^i47Rm4&g* - Prédiction de l’Obésité - Accueil - + + Prédiction de l’Obésité - Connexion + -

-

Prédiction de l’Obésité

-
-
+
+

Prédiction de l’Obésité

+
+

Connexion

diff --git a/frontend/register.html b/frontend/register.html index 7f9e19172..8a6a0f21c 100644 --- a/frontend/register.html +++ b/frontend/register.html @@ -2,21 +2,101 @@ + Inscription - Prédiction de l’Obésité - + -
-

Créer un compte

-
-
+
+

Créer un compte

+
+ +

Déjà un compte ? Se connecter

diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 000000000..46731c6f2 --- /dev/null +++ b/pytest.ini @@ -0,0 +1,3 @@ +[pytest] +pythonpath = . src + diff --git a/src/obesitrack/__pycache__/drift.cpython-312.pyc b/src/obesitrack/__pycache__/drift.cpython-312.pyc index 4db668e21505ee723a32f8adfefc31875246e0f6..bfb26aaf40f62a07d532ff6d061e6e664bd4a354 100644 GIT binary patch literal 1455 zcmZ`(&1)o85UY{;_NNCF$sK5TZugCHWTiKB$wY;aZBVW8>sdx@R&bhq!l z$!@|Zvl8&)J$uMOPkv zJlc)0P%luM=2(7fY8>?ZPxJqyFEEoDdpUp&ix&6IdWn`;c|)V+eWPyg8drf?3&1Dw zETc~F(=~VpsJRc+I?{&m>*hW9qIMr1==b10aVmc)wL?}~6o;*5blXdkAlh8@&r<~;qs5?%!T~VAlcBEd5=Y}Es#YC6&AV>oHJR(CMb~Y{ zv=u73?7APfyl`mw76vNNX>IBC#s`9N(O6q*EHkk!-SZ(m#E z@fP!CLvX(lE45VW232`4CcD|u8BEy@?~B^DbuH=bx*J`h?q+^Qaj<8mM?=i zQp<{;73?;L75h4RjY-8)>%ktf1CV1qJhbHKk^wp`MK_=-TD#W@;zZIZ{v z(a8RZ-qyEN^cScNZPL~rn@1yW0&V>+IM!-fYDM0T7lht=$o4L=oq)1PhP(4oEa!tr zNG}W-b+pt%QMN>Caps9QLPT>-CVAis1gFB;2IDO9@gflUwCuMyE@igj7cdz|=jv#V zV*shnTajaMTPZ4vsU0e^Y9FDt%p-Bt4QX|~6@=8yKyimV_+>OGXYnqw4m{1-olg(v zx|eVCEx5GMo4$Tx>J!C2=!N3*JXEF*-QQkX?9N_)V&CZ0dPec{m4_>jw!gQ#AJWds z6NB|ilbzcctSSlF;*pPm&qyVtk{?u&9pIQMRHzXUY95YmQH!^0X>~geoAGAM;~iHt z10KaYo8ur@zw%Bi!$K&N*m;a{HM(5A5<`}?R#x}KCd2DftvIfF4tHI_Ps||ez#rA= z-ppKY>XmPu=b*m33{#5;W_INfEyKdNx#jmay zC_{hNB-W#a=YYR|`_~{p`8OEE?%9)w_Vi5W&OaJ4?ExU`=g@E}Ch_FYsy9tIHZR`1 Kq94x?bFk2LR3PTD@4o4J63TFyyDtnd? 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 dict: + return { + "status": "ok", + "drift_detected": False, + "metrics": {"kolmogorov_smirnov": 0.0}, + } \ No newline at end of file diff --git a/src/obesitrack/explain.py b/src/obesitrack/explain.py index 19dfd61fc..b4575bf0e 100644 --- a/src/obesitrack/explain.py +++ b/src/obesitrack/explain.py @@ -1,4 +1,3 @@ -# src/obesitrack/explain.py import hashlib, json, joblib import numpy as np import pandas as pd diff --git a/src/obesitrack/explainability.py b/src/obesitrack/explainability.py new file mode 100644 index 000000000..47a6b0852 --- /dev/null +++ b/src/obesitrack/explainability.py @@ -0,0 +1,3 @@ +GLOBAL_EXPLAINER = None + + diff --git a/src/obesitrack/models.py b/src/obesitrack/models.py deleted file mode 100644 index bba112c2f..000000000 --- a/src/obesitrack/models.py +++ /dev/null @@ -1,35 +0,0 @@ -from pathlib import Path -import joblib -from sklearn.base import BaseEstimator -from .config import settings - - -class ModelBundle: - def __init__(self, preprocessor: BaseEstimator, classifier: BaseEstimator): - self.preprocessor = preprocessor - self.classifier = classifier - - def predict_proba(self, X_df): - X_proc = self.preprocessor.transform(X_df) - return self.classifier.predict_proba(X_proc) - - def predict(self, X_df): - X_proc = self.preprocessor.transform(X_df) - return self.classifier.predict(X_proc) - - -class ModelRegistry: - def __init__(self, model_dir: str | Path | None = None): - self.model_dir = Path(model_dir or settings.MODEL_DIR) - self.preprocessor_path = self.model_dir / "preprocessor.joblib" - self.classifier_path = self.model_dir / "classifier.joblib" - self._bundle: ModelBundle | None = None - - def load(self) -> ModelBundle: - if self._bundle is None: - pre = joblib.load(self.preprocessor_path) - clf = joblib.load(self.classifier_path) - self._bundle = ModelBundle(pre, clf) - return self._bundle - -registry = ModelRegistry() \ No newline at end of file diff --git a/src/obesitrack/models_sqlalchemy.py b/src/obesitrack/models_sqlalchemy.py deleted file mode 100644 index f249ee1a2..000000000 --- a/src/obesitrack/models_sqlalchemy.py +++ /dev/null @@ -1,31 +0,0 @@ -# src/obesitrack/db_models.py -import sqlalchemy as sa -from sqlalchemy.dialects.postgresql import UUID, JSONB -import uuid -from sqlalchemy.ext.declarative import declarative_base -from datetime import datetime - -Base = declarative_base() - -def gen_uuid(): - return str(uuid.uuid4()) - -class User(Base): - __tablename__ = "users" - id = sa.Column(UUID(as_uuid=False), primary_key=True, default=gen_uuid) - username = sa.Column(sa.String(128), unique=True, nullable=False, index=True) - email = sa.Column(sa.String(256), unique=True, nullable=False, index=True) - password_hash = sa.Column(sa.String(256), nullable=False) - role = sa.Column(sa.String(32), nullable=False, default="user") - created_at = sa.Column(sa.DateTime(timezone=True), default=datetime.utcnow) - -class Prediction(Base): - __tablename__ = "predictions" - id = sa.Column(UUID(as_uuid=False), primary_key=True, default=gen_uuid) - user_id = sa.Column(sa.String, sa.ForeignKey("users.id"), nullable=False, index=True) - input_json = sa.Column(JSONB, nullable=False) - predicted_label = sa.Column(sa.String(128), nullable=False) - probabilities = sa.Column(JSONB, nullable=False) - model_name = sa.Column(sa.String(128)) - model_version = sa.Column(sa.String(64)) - created_at = sa.Column(sa.DateTime(timezone=True), default=datetime.utcnow, index=True) diff --git a/src/obesitrack/security.py b/src/obesitrack/security.py deleted file mode 100644 index 3fbc5fd96..000000000 --- a/src/obesitrack/security.py +++ /dev/null @@ -1,56 +0,0 @@ -from datetime import datetime, timedelta, timezone -from fastapi import Depends, HTTPException, status -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm -from jose import jwt, JWTError -from passlib.context import CryptContext -from .config import settings -from .schemas import Token - - -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="/auth/token") - - -# Démo: un seul utilisateur admin depuis variables d'env -USERS = { -settings.ADMIN_USERNAME: settings.ADMIN_PASSWORD_HASH -} - - -def verify_password(plain_password: str, password_hash: str) -> bool: - return pwd_context.verify(plain_password, password_hash) - - -def authenticate_user(username: str, password: str) -> bool: - hash_ = USERS.get(username) - return bool(hash_ and verify_password(password, hash_)) - - -def create_access_token(data: dict, expires_minutes: int | None = None) -> str: - to_encode = data.copy() - expire = datetime.now(timezone.utc) + timedelta(minutes=expires_minutes or settings.ACCESS_TOKEN_EXPIRE_MINUTES) - to_encode.update({"exp": expire}) - return jwt.encode(to_encode, settings.SECRET_KEY, algorithm=settings.ALGORITHM) - - -def get_current_user(token: str = Depends(oauth2_scheme)) -> str: - credentials_exception = HTTPException( - status_code=status.HTTP_401_UNAUTHORIZED, - detail="Could not validate credentials", - headers={"WWW-Authenticate": "Bearer"}, - ) - try: - payload = jwt.decode(token, settings.SECRET_KEY, algorithms=[settings.ALGORITHM]) - username: str | None = payload.get("sub") - if username is None: - raise credentials_exception - return username - except JWTError: - raise credentials_exception - - -def token_endpoint(form_data: OAuth2PasswordRequestForm = Depends()) -> Token: - if not authenticate_user(form_data.username, form_data.password): - raise HTTPException(status_code=400, detail="Incorrect username or password") - token = create_access_token({"sub": form_data.username}) - return Token(access_token=token) \ No newline at end of file diff --git a/tests/__pycache__/conftest.cpython-312-pytest-8.3.2.pyc b/tests/__pycache__/conftest.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b161483fd04470d6f2cb1357ca3bede096ae6eab GIT binary patch literal 864 zcmYjP&ui2`6rM@4+3c@UOAi*c_9j8x6}*U5scy9tp%z*}LSRXgshjL>5@u$pTUuDP zSc`|&Qwu8eD)kTW;2$7(Y3Zd5h(b@^EbFN!-|R0tA#c9-y?JlG_mc0qTpGc8y8gBN z8Y6Tpo!(Nrp!E{KHu8{%tH{FbU8$+Af>BMg61Wr5Egd3CHCZz(qsyhNl!AysQo(Sq z=>L5W?vu;P5Is2G!Dp?fuA#jyVdWaw)P75E#>65$PZ%#&eG+o_Y>Ez!RNV@|Y$M)} z1-)MS41#Vv1s?T-@>$zcI)PQRf`Y`ELtWU@;Uz|ZS;e02C0Fo!^ilEg95RiW$omqtklWK-Gl6i`pXXYqi{KS zpE#7zF;f+~+wN0nam2XL0v3f(S)+u-BGFD}QvBH1=|u6C{RA##_H5CfB&@=t*k&>H zLw>`4yg-;gPaU^%ZI(s>ak(u;GTV*9MTzop12ln(Qkgg&RH5gfYzkg>2TT+F)lqh6 zb9`fbYxRr%?cu@Ixi{m7nfd1AQFd^1dSm+Sqn&|+?3Lz&qwIy9rQQ1Ov;9l?{Y+tB zE3}{hG6#gQQ1`3c51GhL#Enwl8!5$&wgwmyp>hIwN|vb4iAeP+k?e74NS4P-4i$O_ zilIe^aVPfkGSC?rl^+h`6Iz^FR2&oF z9OIH&oL!P%5K~-Gl$lpz9OIvqTAUeDl$e~Y8&H&=m6}`}jYLro&nEZ33}J2+UP4XWK*czpU`Aj~ z11|$AoVZ2T@O6w)9o?1BV?&-O1T#U&MR&u$-US60OC%x_#la+TQ~m-O>Vz-3bD#KK zb8e~Z&bZW_H(A-C6?cB-#~Yk(pE6`$WuE2LnBPXIGwqqg_UwXZ6F*tDJ?a$LZA3F% z3;gK$N8_WDUoxAr$+P2=r)@Upxz$NlrB1~gp8R~uX3jZk73SVMOWh)fne+f5CQ4I? zAFS5>45^jNb(7jvmwF4ivRjx7Cr^~zf>mNC2jd)R(93p0v4|dT-}!K0@58=#Z;^Yw z!_SgRhrWgsO{ZCyUfAt&{T|mp7$}>u!5(2%po}|-*RHl-}Q!-g|w=f0}%teELYy{$boP z7vI{2UkZdI4D#?^e<#7c#a-kcj3I1-%4XGi|?MJAo zG!%B%<9Y-YQ&Fo`6X2PK_~2`%rR7j2Q9TZ_pd$D628s^BJYw5o@;OW!2!b~ZY8vP4 z*uVze7H0*6{?@KHjcZpqQjhE{cX4Ns8)= za0y+&O$mMlFvrE-NK&hgaB3zSNuuw7iDrtV!7r(XB0QuuG**gf-rPePcqqfyv^*4B zvl%|AXqQ{?wXU}8O-Uf4lQz=c&_jIEuZ&MR(iqhtJ}JOQYbvCpnF0%v^Qg&fz7gBk zW;S;=xXoRB#p~Nly5CszCL?RMjNTWV5WU@`Cqy$twvp|POo(RUmC;N@dZRi*v#F6@ zKr%@>L^O#=3NhU(jsi^k{@-y_N5+nch3o-wi63ZP;ZpaoAwKLTy%sEGPpXFNSz=c%jW=kmWqF z{wT1);8Ds`0OdCoDC^>q4;d_yHDWMGDZqA!7b7nTI1&grLisHVIY@FUaS2XEs2S$F znQ}?pkZ3BcSab0M&#lYJOw%hXz_;xJqDaSZ!it=-6DFF z?z}R3dGxA#tMTpV{q%{&)2qs!l{fS~Ot)V-cKO(M$GOzqE3fmdD*Y?}^?RW7uPQ?; zuk(p_n9=U1q9~$obHD5`gSZs4d=V!ad^EDt08i_&jx@?2=l^K1s)60e_~j(@?C* z7~@rhme4oZKalYR>CaT8_go#ne&+i#_qF~-^)YT=+wzDX2YA;rDTVcQ8A$_c LqSd3~VWH(;cc8vE literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_explain.cpython-312-pytest-8.3.2.pyc b/tests/__pycache__/test_explain.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51d4493b5ee9613ee6769b412785a1f70c7cbff7 GIT binary patch literal 3559 zcmcH*TWl0n^xm1-*;iYj1={)`>jPwrETsish+4N$jieAoG@B-q>CUvB?d;Ba?<}%) zHdZB3ww#rSm9etb&9TrQ>5I}qFQp$0l^olud&gjyHkzK>IE`K-|>KH#_&!{HAW$C|ZT>)^?TW7u_zRU*p*f!ObZZ@DWFI0M#yKxgQaM3W{o zdFH)$5k7w?>U{U*%t!#|ANmL=gu*RnTF_@WiYXMXj+O48e2QC)PaZ8zj#+%pa~qSq z!R)#>GI?am;`T9SROWUaWp34~c#|FknFm<6Li37^mdK;^`U%5nT6})jy8aXsr%u8W+m*IcvdV82V(pKTgWxWc-DmSqw3AVPVf z=i2zOG)$rnj-69vS)$n;AvtDc{!SMi_0Z8`m-0}?1V-U@J&8^Q_t%l)MW*Lf#!WvqUT?qu+0&8d^*8u%S{#YQtD^hC56$0pT zhNL!LRQk^;{bvWpzOJ7?bo_$y^p8sRPp$y!+rvnM0mwX)%&%<~@EUvBTY2nat5}j_jhy_Q1ESNP(6R=Pzp}T@f$L^@Cpyu~ zwyx!W;{eMC*0H>E+6K=k;c5HN8JF8ii)c4YEMc;j@cvuEM{o)K&{9Gkow0;+sC2v} zVZzh7^esxDSEU07G&(=BeP^RJ ztnu9QQKxXAfW0A&7dbo}O|Dm5)5^6A2f~GY8W#$)ctewg40MQw5$&7rF*v-8%0$RBXQ4vk;5?xR&&gxM_M z9M>?}?XW8HXiONZJ;}k|f- ziaKvrDi-H#3>bpS<3`xW3*?8b1MlDR;pnH&ezoabPibNN$NZ)@_P@6O%@;m=`ZMR% z{pa(KFN|GMZoPP&{y*e5ym8-a_r1O!r4}y!+y4cna7h`u_`m(nDMLZIr)?0Kcw4c( zn3h33+=#_6!LT`s%zBR5o+Yv?Qz9MBv0>y6VZMpxhpEkZGN+K tdi<^N^Vypg)L-a^g{`k_dvV)4$_0A!6-lMJWtm9ZE(g7hD%}(K{TI#p@wos1 literal 0 HcmV?d00001 diff --git a/tests/__pycache__/test_predict.cpython-312-pytest-8.3.2.pyc b/tests/__pycache__/test_predict.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..47b30e2305dd6a346b6730828a738b4242b7dabb GIT binary patch literal 165 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/evidently/legacy/test_preset/__pycache__/test_preset.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/evidently/legacy/test_preset/__pycache__/test_preset.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..52a8e896b0015fdc80c29c28985afee1c32f549c GIT binary patch literal 1589 zcmZ`&&1>976d!%8Rx9t99mi`oY2x^%f)_$=X(?{K#VrKKP^T0j5L#)xR-&)W$S&Jc zXnkmIzWLf~F}?TDKft9I`_wS7G*EizsZKYg;8Wfkt(}9<64au{y|IUrP) z&rxNd3IwViLeX(K8r2`lR+Q&+3^i(mI;~QZ)~Hn`ipho*Iz{U;c_TFT^uvjP(->B5 zQ&<>m8TzGol!@B74dit^q2g#m)z;3YU)yz8vveyOY_8k7Fg-8z6Y6=w^1LJqcVgsq z&wIS%#}i3C;$9yL;T6N2{y@g)>Fn|9UH1W}jJq4FZjbUuMV7lfXHi<*aqssjk2aYf zJX+ph*+Uu>?k-Jt-Fs2r^^IaHIA2%Rv*NQPk7)w&((n_;GG=Q+=QQ48^PtPHXB@w=xVXsXU>D6n zIXh4~NQ-~H@J16Zi)PUlr{oEFX_D5`v3X0Tv~D*Uc9dblYz9FlsrmgtH2pp=pvpx; zi|s6AXwM7;9YAOxWEc;__b#gNK+r$Cfmi6TEE-128s~t{_y)ip`A=0U*Iy8TQ-c__ z-zuGxO6OG7Dof99E}v?+uY7tmdlVdh{>9PuFE>tBzLdAmYmM&)Pv8Bg0vcnD81paC zrgVmW?2a(|J5gLjDHrvXeCS=A7QB3jrRw?|W(!|om(i~njEtyVT#4%Wodw3I?)i+} zgf9yNMl?zXW!6{(nR;0hoECBYV&J;vz;)$hLjhS7FnrWv@huf}!AnJ?tcGg#TWUK+ z6!Wf}J{aJfWdY?Jqrtw2TmPd!nS+dRHU)ZY2|>2wa*NK)56buXA?tz)&MRL7IMozI z`5pW9tu-QZBhrz-Ya=rMC%H2sw@0KmBJV%9TKoEb@_p}Q&OUD2C)RsUsxJ*wS=xW+ JUjmzK&nx^`rIP>v literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/evidently/legacy/tests/__pycache__/base_test.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/evidently/legacy/tests/__pycache__/base_test.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2362b2b898c8c4d37f06fe00562fcf7e785e89d6 GIT binary patch literal 19005 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%0DAQo~ltLraIRfa{sb`%v>06DmC?gBF*p9=n

x9AW&Tj_&We-j`+ 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/address/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..34ebe49cccd31a28f713b55e25dfc905fdb8fb2a GIT binary patch literal 12026 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 J6-q@F{{?(%Vk!Ut literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/automotive/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5af94ee1189890e7c2b4cb3989f63dc1adb051dd GIT binary patch literal 1528 zcmYjRJ8#rL5MKKpc8-KVgaknpMy{^7yMiu4I4DSf2oEWwIazF+^CmIzi(Ox$a|KfV z13ew$5AYul5)F+TB&g^>0U=$*%&Z;QV*JhfvEKQxwA5p8KAP_j{wy-~4VmV2YH+#^ z;57?bXvA!6(AP{_6VqTxd)zTtXoju0n^&Zjm^*)w?cE=p0)aI*#=el=6;gLA`xlf1k)l* zvLZSXPF}}!_A=@0?1+?aZ|&?jaW)BJG3@mmI9u6NPJ~+1+`u^~id?OYMj{;^M~6`^ z!YCMKa({%}XgiGx5%R4fD1_p1G!dy1Jdc6pp-|C&s(6rwTnQNkF^9ZKP$){&7jw(? zJQq%Bxf+4Qbsf+1$~Ma97C;2jf~MwOK&V4E6qEG;Fxd^z4sWYOJ2)kHqmY2-fQJra z0dgROP6j~Q=mpjeT2nAYrFBn>N^9JJ2MyS4z{48Y+8f+#w}ynMevJ^83#j#|kH*jg zb?sByIvj?99;qOjg;#dK8){vETIG2pIFo+_rUD0MC%e=QW&n3+vZ++7X=?vZ1NAr? z932J5NkAYM%cA)a($K3d+=1>3k`lt~a1*XO#rmMouP@&~K5VRR0;i65rSqHvt2uO7 zUl5w1($oE5d)U98qeNq^SV4p=bxSwCgra367i&3r$qQ#3lm#t80w_yT1bE3z5}`~m zS+waO#SgH=0nn2sC;Ult@sy3OfE4u4S@o!(Fq#?Nsh%E)JZg@vnb4ztr?NRugG6v% z^*B$ma2g|CGiJe3;K@!4Sbsqi`4}?5El3*gwucGcR{vJ(jB=Ba8k*W$#X-xQJ3!Ew1M?e#Wix zdihL}Q|WngZ0XQJ!v&aN|aCmT{I zr0_q;-yr@2miB_3pwlQ=r4vq@RL<<)1$@Q({`kH3J`V;xVCakU@x>=2e_3Nq{z_Ty z8s!X7Kw%DI*hr^vQwM^=i+u>FL*2YnbmIU52TTCV1q~%}KtB zbTOu7YTQ>6GYy*=1yQ=6mUFH|jnk5{_h4!9U*vmt(KE?}M2CCmA(JyzR!CMN#vG|o!Jbwh%SPA?OE>&`&s*DxntOG Y7ee^MBK`_){pomc``yW3U_?{;53?V>MgRZ+ literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/barcode/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3d39a9b6fa7f81e0f14286433705f00160900505 GIT binary patch literal 13029 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/color/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2c689e07dd6143c25c3d649e08a92e5e5e7ffceb GIT binary patch literal 607 zcmX|9zi$&U6t?d!$t5Hb3q!Yz+|XNC5JIR@kWeL5D$y<{OD~u6E129bY$xcD*gCK< z_isS_1N;w_x^=({NKD<30!t_CyQChz_rCX@pTB4OaxxhayRN+NZ@*ak+mYSsZJo`5 zbuI`eoaQ8U_$qh)7~uUX&9|8W0IxEDuVmv?+!nJZ>{Ovt z?0CkWqgv{!W~!E=)Q{M!1uAhO(`>nK2YH8?W@{|h?4?*RB{c5WHkH0X#m>?tO16`z zSSy*e8X15ng$9W0rX8&XH=_zIoRc5H<6l82?^)8OqM->FE0JqaDlAD>eC(`mgX5C8UkI{f_UAF-z0`X6$(s~!LV literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/company/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..94e5fa1da33abb6861f89aac650103100024cdc5 GIT binary patch literal 547 zcmX|7yGjE=6rI`KB)c)e#wMSzLekiYNFaiZ#DE5285lOZqmJ2^Gn2?xHYxmre1rG{ z{)1pA$TSvK>4a#L%9-6HQ`~#bo%=YPw`Q{r)O$BxZ?9DT)@1W4Yq0DpFb5$BVFWx_ zWFs~M1A^G{DiDN5Xhzkz=GhP!;1q<`41^V8znJ9)ua-l%y3nM*FjRD*v?tE$lVwAJIUvP3&rstAvs9_?n$pHN@neFqtYaLf;Uv6Dlz7WO<>n2wE)H2F}2zWixGZQFk3_k0vw{G~u$*&2qeD zEu7_oaMAI(k}PPNbQpPHN{Mu~C0X0l>S|cGW1q=#x7_WO!Zy}2N1rWj?Yu-}f$Al1mX{jGz|F;UE^Yr)!R4PXQ0kw9OUH||9 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/credit_card/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfec2df2732e6a293a74b13ad63fd9c8d73edcd0 GIT binary patch literal 625 zcmX|9y^a$x5Vm(W$tL6kI*9_RrQ9NEphD<$QcglAq2naDW@TyOtmnXF|FE5)rM`E# ziU&Zv0Plc=XeihQB&zF>0?k#}yUDruX12hMnd4s88Yb@66nOra}4NfYX;;&G%bG}5y zb`mw~go6{#TBQs?7SaGrtGXSt1vjq_EnJWv!NIQ}RJSZ?Q}M6~7b}?=S?FebSk-XD z?m<->)Mm=HRc>TiOclOUR!}p%2{nUVY-BgPa^R}zdN=#C_F`vN-tL{0`zYP2_~TPbe>%b6$>eX}r^9czAN(WMwtN2r*ub%e literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/currency/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f59447b58d6b311071d1a2b02c20516169f1db4e GIT binary patch literal 923 zcmZ8eziSjh6rR~1cbk~=RFXna46KJNnroBX^suUW_K=bvb(p=%tiLF zNRdB4t5}Miq_OmW5F{Z;WEu;rbb*UaD&Oqx9pWp#_s#n;@69*gYPC@W_Fen>%ESo$ zR)>L^CF#!s*+&5iaD-Yo_gbv`8b-0vg0?^l^r#Y7TNXwddWr&L4+SQ*4)o%NRyD&; zOUE&#j}zeQXB=F38emhUM8 zxr3-$;y*hm`v<-U`4!}7OBeXIqf0C4#*~HaOkQSQ5_DohBO230$Xd!mpOSWm#h&1x zlfh}!=IXl1i*)XxyT&Qw?(&@bgz|0CNnH*diMa2++@L&MWuCu11=4O&U${Fo*>M-c z4VQ<4PNk6YHYs=8-Zo`!TI$bTzsnd+{LG~ZSzB=l36oF|(o8dH5|HY(GDqSU9RL99j!~C`C(7MOuU; zUQ7v*qlCnrpc^SZM#$@~7Zn+H32LRz1!I?ieMYPfj@1+>xpPp2PXO#8IsR<-#hHQ4 zMf|}&N6Hr+s>T_S)ro+CW{^9mAO*Afj(?p?KfQa!g^FZ@iDsz3H6cu2Edt)G5)1?|AFqFR}8#}59_!7 IAVu=-zmaX|xBvhE literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/date_time/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c899de0ed19fdc504f19e88bbcaab243edcea45f GIT binary patch literal 551 zcmX|7Jx?1!5Z%4=$JrQ>f(9CD3*m+iA%p}{ng}dm3QjAH&fZB_e0M%}*N)utANUPX z{y_diBt#P_+J=IP4#`PF#q6EU7Blb7&d1aHy}sUN^d5p=*H@IEJz2f_5-g4h+%w4} zPg%^%9Ax1r;4G`fbeP*(D$7CI&pJBBjZq9kP@#4wZOF*&9UDVf; znUbhSRZkW9k}Ns|?irTn;(*2jU8B-jH*^s|o@5B%+5p)^PE(IN0Jqa5t$u#6g38ctPeRc>78 zxR}ES+k#?l(b!&MNVHXxyr=QICM~Y@QF6^ytxdze9TM%T-R{#VNgI%|mAks-@0Q2c o2)#vzm19SGlc=}bY*Tm*IpmRoJufciiabxE{qg>9u11-6hM*si- literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/geo/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/geo/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c72ce3da39383891a5b8faa2ba49ed018c485013 GIT binary patch literal 540 zcmX|7yG{Z@6rI`Su^@Cde1V~W#?BZ+#KguZMrk&aOcwTvBl~h@z-(ek;UDk~#vkw> zOzcd|G!|BLCTK(D%q}p+z31GykCXFOuUCrOw}mY+i8Da`|>G62VeBi^p zCy#hdmNgCL2(ojorN=E^(53UHtsF`tF9b?emC`WwCxO8=O7ACLkpDcRrCGEZcMnKk z02id!B_|-pGERs{IE&;yxfp<8*W4S9TUyH<3?-RDG$m(jKm?P}O7xdE0zq!PF>sQs z1q(8Qm_S7PSAT#9tR<&bKz{XQvF*mcrI~uK=!`!DMzN@J* bSu}L`u`$M9M&}3G`z>Kyd3yXqI%T8(-j$Lw literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/internet/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/internet/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..44c2ab5dd83a0525f6e9acaf7fec28f8c886f0bc GIT binary patch literal 550 zcmX|7yGjE=6rI`4V-q7<*l1%N#58sy5{Mvz#DH433=Es>RmbdZ)|p8pz5n1hh(F*z z2x241G!|BNLbOTco!ul;+e~D_v$=fUts>SWd4dXFli!qAR!59M0}cM zCw6-dC2_$oQW83$8g5Z!4RB1amg~53wYcKL7v# literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/isbn/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/isbn/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..209e99a7d96f69b48cd28bbc3a57c16e426d9607 GIT binary patch literal 1103 zcmZ8gF>ll`6tg2P8HYFAPk#l@^vxJUelauoTH`hckz8PO$eyAbz zQwDm}%gxmmY|c=OVmw4WtX5-W4h)P&wO$>g*oe)cHL`mRj12Sy#kEru*Jnz{yKH=t#FPz+JH-qosBv`{mNP_^T+fK{A&8vI**wQ_?W2+4o;j&I z7LyEN2A=OU9aGq=#Sr#dpazpANWj&A>v|HIR)FhE2yVE(0%S(TaDxKa=qd)AErE@0 z$$*Vw*cG4|@;C@8hNs2-ZUMAQhQF>5VXH(?mGoSSt3AT(iEOcy_BzT$VS7ccLK=$oid@jeMj)-K7!XUV zpbO8H^6a+m!s|$R0DMm|v>_0ej6hlPj}a(K*b-zYgbjgL1zy{6YNA0%8jUC+qDjbT z93KzmzD3CE<7ikSbq1&W6S{%~=z6%l8SZn+c(}VAKBD|6A7>%YSd!+Q@Ohu|p5$~n11LJAJUobwC=0XlDf2Ml{WPR0+20EZNzx=IWF?!Z zN2(_IwzxFm6kS+orhQp!&9^TXXXo3$mTui>Uexc*S??aR0B)%J&WvdEkCS1Zq+GPN zvI(i81(Hp2%JY?oLmzoEPFEOx!=OAdQymFgpEZFjuak(0BDZKg-FvvBe?#U=O(nbu oyX(gN!p8?}8$t{pUx4Yt#2EjO^?yhAep^e}djIwhf<;mP0!B*@RsaA1 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/job/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/job/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e2009c9d98503909362b4a396127e9fefdf17018 GIT binary patch literal 540 zcmX|7yG{Z@6rGvnu^@Cde1V~W#?BZ+#KguZMrk&aO!hJAz`mRrFq>FX_y>H0@dx|| z6FU<#jfEAR3EEIOvkOdd?>Tqw zF7Tj_PpBBnB*h}-ESCHD!lQy+bJrhtw3ZR|C7#lFiqDvb1(URs>M!?}3Vh>^DaYwr zu)w3l!!#ztD@+KBnIxo}X1TsR7@@+LHv^v~n;V1kdb_4V?hYNjLr|R_gjIm_VoA%bjnBn0p6vOGXMYp literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/misc/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/misc/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8b81eb2116db3cab096d4ffd6bd71a461b483ada GIT binary patch literal 541 zcmX|7yH3L}6t$B+($a1${Q{JsUDyypm5Rgyr3ku2maH@}V49@Cc8e-8cHj^C4TvA$ zACTCPkQWA~Zb*ft6W2*w5BHvPeIG~XtzNGpc<Ku^1 zWI~c&ha59GRHKy0RPaRYlk)+S{7U%2unAi3SfI#+B@=SW2SjqknkjtwH%yXif5-$$ z*McR9xeN$PX#bK>$`h_AZKcypU>1y0Y22Hk&w?Y2!&%*}XlF3yk>ZKewRSqCTh^fI zR57Vqz68CBkCK*P4+3Q9%C@A-n_3lyO*{34&UfqD8K~NrDk|n?c6bNS$~nx9Iug4; djmxqD;m5`pe;J)0Xz#a#apmdp4?)UC{{fm9lC}T< literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/passport/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/passport/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..705db28c93d04a3aee5aef1ad5d092b58442bb01 GIT binary patch literal 4631 zcmcIoO>7&-72f5~a=D~PO0s3ivZPgI#b#|$ResROssEBRZXGAFBdbkVChHYYM(PY*{y`Kxcea5zp;|0E5s1Y5*z8HihyL`k$lrD>=3 zmHb&BO_c)aAnlGYX$D4oN~px9*-|(icKZDaSBj(~4joXUrJi&T&_Rh&Vx@RGK~p~J z93_RWQxc03YkpT_I$oud;ce1*G3m1dl4u}1Y{(@fA;l1rv>m)$DJuvFZVp|$AR7pa z%C-;qp^LqUwX3p(aMqRPe%V%|wHf4WB<+*vv|sY213n4`i_z{0F1^<3%F&V^1*HHA zA(s4d{vjC21*G8hU^*;u5`#DxjX+NbdZIwHIiJK{52Sml;ba68{k7d+mSEW>q#Ar# z)b+B4foQFk&uN&yas{cv{M?l*yrN}A1*JHShcc&Ca2Dw&+}0FdFpRQ(VtU%Z;#H)i zbOQ{O%4=7rvzlsv^wz*MQl~vVdYhUmAf-I5qHD%f9;skCL)O$Ok1tg)N{XYjqh@Jo zDRosgL7CZH-}IYw4P3hz z@c28msimkh8aJ7)-2}UKa{&B{fw{e%IUWVQeIDJZ z&0q~0cX~YkSq_-5} zg6lXh>v{zp=S5ZG(Y3Pd2D`(gr=0L4@ZvB%l!q5F;sI17nSca{H#9ycDhj_O8wFYA z=Tmbj9^glnM8E~2_X$VN%uo0#5^gW`aghWPJBb}03(rFV<#nka)FC(RM~U;=N1i&!biVZb=b4jLLv!bFrE zZb7q#?OtLAffz(sK*kb6Dkh+2`w4UgOMv(VI|SxY#4N%@Lz1%tI#P0&D7HDr&H@pF zVGS@(%p*JMctcen`gNOgJiy_xBdrlK!S3x02(FLWeO=?NKAk8cR&mR>Vi z%*AIi&mw)%(8?LTjAhk$Ec4O=(&fuo%q~vBMNQ5&a}}vqGZ*BAj1D(B+(g+$SfZZE ziHitly!%nlcvn=$xg#@zAgi(=2&r<_j(KCw9`xD)F9%5N9TVJYGdW+f_poYe8 z4>k_`xXyi^*msM2hxV_UIFD>k{>Z^e$+{mn>hrSImG&EZ4!3(cXC z4@Tb`-5Q#;hGy3%KTS3+z1FyrwJv2Fxx95Lzxi~*I#Fm8wT+>2{rvrS-^!(%OU;q- z4_<%o^{tVU*2u~A!oA?e$cyiA&7Q={(>Gsj4v&04u{X}|Fw~(3Cp8oM-w)q5Kgn80 zX4lVJM^0`Ip0X0B?y`TGZKQLX&*!Z(`CY&7V61+AhoutzD+@QPd)I|Nl^gS7L&{t8 z`9^WknqS;}PO(lY4OQP5F;=+d*!W8Heq{gKr*52j_vOzbW4F(59e&(8{P;Tk+2Pq{ zbm0BuYVYR3V^;K7{d{wP-x@e-4IEu9eyn|@-HlqQ3yp!J8v`%YBlpLWt4AB7k2Tn# zCVy=87mcwe8tlPle5f&eypcN7h@WY&XLjMNDB{UT+LIZOC?oN*Yr@CP3>JS1A+`U% z=LRP2VJl7LAyNI1-jhu{Bu_AXz~}#vmI8NzUTP}QB<~~n1>i7KTki&8-2e~I??oyD zpbkPAvQb`=b%@a_fT*Sdf_aYFfyIYlS3A>Nk`+Z3OS-J;hHO+I-BZM+R3)p3DI`^< z%asL1&N`W#K7Ebkb)a#oBw~mly`9_X({0GdBr{3+ZTbb9e$J*}N&3G^OHY0A((k`G zjgP}nzPkO$414Eyr!l+=C`iIXOGwTa4Be&|VH$%0^0g8^0)uuaThL@kPm=+B2->Yq zcMZDDvm=wKNibaN9ub$#W0Q9l*7~f63L( z&(HA}y%&nCy3h|9K$6Cff}YyhH*+%94M7!4XqkIchj)Q0c`f(cpj*-w;Okr=P&@Yq z;fBY-GM5b5Tt|i-=@Q|nfa^_Lu!GKIn{nsbewdnM>}cD0fCo>)g79PT>AD59C3x6$ zIhp$&u^D$GaN#bi@1)f` zxzT&1&fM=8fwh15*6DXnHxGg-M*l^CqY zooIOxj@rS9n9T}~5d^{J1fir!6$Jqu6@)h`qC%_!t&ku{S{8@{?XA0(@=^pR#c>i4 zOya}#16n#qXZs;7z~t%W93p-esE;UT4URFLm$UOBp02+JpX=1uJ|@WSB!Xj1BQOlG zFg?2}eO&ygxTbtf9SxqPZyP&KygJe)l!&^xUq~_4Q>s8XUO&%nk+BC)_Tn zb`JFg2jA7dp`da#ljnM}7v889S%Ij~?dX|uRcN<{gmTqDx{-nyL73#mDU6mdq%U^3 z-9@r8w~vF#gk2CZo(9P_OR_7H(z#{{kUqw!mLdLJ^F*EGC)MgA*0Cwa2zKIPD=s~! z!WUq)W3O-7pSfpr3cmsa1lDu{(>s2eroSM@`)$ux)ZxEVgI`h;UsA`uVbU}`*ocq) L8~zfZ-R=Je9#G7o literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/faker/providers/person/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/faker/providers/person/en_US/__pycache__/__init__.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8643c4ff0385342c0438d755389bbc155ad92946 GIT binary patch literal 34598 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/scipy/stats/__pycache__/_bws_test.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/scipy/stats/__pycache__/_bws_test.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..caa80c8b344832bf1fb830b121353f84716888d5 GIT binary patch literal 8597 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/scipy/stats/__pycache__/_page_trend_test.cpython-312-pytest-8.3.2.pyc b/venv/Lib/site-packages/scipy/stats/__pycache__/_page_trend_test.cpython-312-pytest-8.3.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f765e0db1ed92b2e0d4d443a453e6d0d807dc802 GIT binary patch literal 21324 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