refactor: remove commented sections and clean up code in various files

This commit is contained in:
Mireya Cueto Garrido
2026-04-15 08:57:04 +02:00
parent 658b86c067
commit ecc82011ea
11 changed files with 0 additions and 69 deletions
-3
View File
@@ -16,9 +16,6 @@ from api.routers.test_mongo import router as test_mongo_router
from api.routers.docit2mf_build import router as docit2mf_router from api.routers.docit2mf_build import router as docit2mf_router
from api.routers.google_auth import router as google_auth_router from api.routers.google_auth import router as google_auth_router
@asynccontextmanager @asynccontextmanager
async def lifespan(app: FastAPI): async def lifespan(app: FastAPI):
yield yield
-4
View File
@@ -1,12 +1,8 @@
# models/docit2mf_models.py
from pydantic import BaseModel, Field, field_validator, ValidationInfo from pydantic import BaseModel, Field, field_validator, ValidationInfo
from typing import List, Tuple, Union from typing import List, Tuple, Union
BlankCardInput = Union[int, Tuple[int, int], List[int]] BlankCardInput = Union[int, Tuple[int, int], List[int]]
class DoCIT2MFRequest(BaseModel): class DoCIT2MFRequest(BaseModel):
term: str term: str
core: tuple[float, float] = Field(..., description="Núcleo del conjunto difuso: [a, b]") core: tuple[float, float] = Field(..., description="Núcleo del conjunto difuso: [a, b]")
-9
View File
@@ -1,13 +1,8 @@
# api/models/user_models.py
from typing import List, Optional, Union from typing import List, Optional, Union
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, EmailStr, Field
from datetime import datetime from datetime import datetime
# -----------------------------
# MODELOS DE FUNCIONES DIFUSAS # MODELOS DE FUNCIONES DIFUSAS
# -----------------------------
class FuzzyTerm(BaseModel): class FuzzyTerm(BaseModel):
term: str term: str
@@ -23,9 +18,7 @@ class IT2FuzzyTerm(BaseModel):
upper: FuzzyTerm upper: FuzzyTerm
# -----------------------------
# HISTORIAL # HISTORIAL
# -----------------------------
class HistoryItem(BaseModel): class HistoryItem(BaseModel):
id: Optional[str] = Field(default=None, alias="_id") id: Optional[str] = Field(default=None, alias="_id")
@@ -39,9 +32,7 @@ class HistoryCreateRequest(BaseModel):
results: List[Union[FuzzyTerm, IT2FuzzyTerm]] results: List[Union[FuzzyTerm, IT2FuzzyTerm]]
# -----------------------------
# USUARIOS # USUARIOS
# -----------------------------
class UserCreate(BaseModel): class UserCreate(BaseModel):
username: str username: str
-2
View File
@@ -1,5 +1,3 @@
# api/routers/docit2mf_build.py
import logging import logging
from fastapi import APIRouter, HTTPException, Request from fastapi import APIRouter, HTTPException, Request
from slowapi import Limiter from slowapi import Limiter
@@ -9,7 +9,6 @@ def validate_simple_docmf(request: SimpleValidationRequest):
results = validate_simple_levels(request.levels) results = validate_simple_levels(request.levels)
invalid = [r for r in results if not r["valid"]] invalid = [r for r in results if not r["valid"]]
# Caso: un solo nivel
if len(request.levels) == 1: if len(request.levels) == 1:
if invalid: if invalid:
raise HTTPException( raise HTTPException(
@@ -24,7 +23,6 @@ def validate_simple_docmf(request: SimpleValidationRequest):
"details": results[0] "details": results[0]
} }
# Caso: varios niveles
if invalid: if invalid:
return { return {
"message": "Validación completada.", "message": "Validación completada.",
-8
View File
@@ -14,10 +14,6 @@ GOOGLE_CLIENT_SECRET = os.getenv("GOOGLE_CLIENT_SECRET")
REDIRECT_URI = os.getenv("GOOGLE_REDIRECT_URI") REDIRECT_URI = os.getenv("GOOGLE_REDIRECT_URI")
SECRET_KEY = os.getenv("SECRET_KEY") SECRET_KEY = os.getenv("SECRET_KEY")
# -----------------------------
# 1. LOGIN → REDIRECCIÓN A GOOGLE
# -----------------------------
@router.get("/login") @router.get("/login")
async def google_login(): async def google_login():
google_auth_url = ( google_auth_url = (
@@ -32,10 +28,6 @@ async def google_login():
return RedirectResponse(google_auth_url) return RedirectResponse(google_auth_url)
# -----------------------------
# 2. CALLBACK → GOOGLE DEVUELVE EL CODE
# -----------------------------
@router.get("/callback") @router.get("/callback")
async def google_callback(request: Request): async def google_callback(request: Request):
-17
View File
@@ -10,10 +10,6 @@ from api.utils.security import get_current_user
router = APIRouter(prefix="/history", tags=["history"]) router = APIRouter(prefix="/history", tags=["history"])
# -----------------------------
# 1. Añadir un elemento al historial
# -----------------------------
@router.post("/add") @router.post("/add")
async def add_history_item( async def add_history_item(
data: HistoryCreateRequest, data: HistoryCreateRequest,
@@ -39,10 +35,6 @@ async def add_history_item(
"history_item_id": str(history_item_id), "history_item_id": str(history_item_id),
} }
# -----------------------------
# 2. Eliminar un elemento del historial
# -----------------------------
@router.delete("/delete/{history_item_id}") @router.delete("/delete/{history_item_id}")
async def delete_history_item( async def delete_history_item(
history_item_id: str, history_item_id: str,
@@ -64,9 +56,6 @@ async def delete_history_item(
return {"message": "Elemento eliminado del historial"} return {"message": "Elemento eliminado del historial"}
# -----------------------------
# 3. Obtener todos los historiales de todos los usuarios (ordenados)
# -----------------------------
@router.get("/all") @router.get("/all")
async def get_all_histories(): async def get_all_histories():
users = await users_collection.find().to_list(None) users = await users_collection.find().to_list(None)
@@ -90,7 +79,6 @@ async def get_all_histories():
} }
}) })
# Ordenar por fecha
all_histories_sorted = sorted( all_histories_sorted = sorted(
all_histories, all_histories,
key=lambda h: h["history_item"]["created_at"] key=lambda h: h["history_item"]["created_at"]
@@ -98,10 +86,6 @@ async def get_all_histories():
return {"count": len(all_histories_sorted), "histories": all_histories_sorted} return {"count": len(all_histories_sorted), "histories": all_histories_sorted}
# -----------------------------
# 4. Obtener historiales del usuario autenticado (ordenados)
# -----------------------------
@router.get("/user") @router.get("/user")
async def get_user_histories(current_user: dict = Depends(get_current_user)): async def get_user_histories(current_user: dict = Depends(get_current_user)):
user_id = current_user["_id"] user_id = current_user["_id"]
@@ -116,7 +100,6 @@ async def get_user_histories(current_user: dict = Depends(get_current_user)):
history = user.get("history", []) history = user.get("history", [])
# Ordenar por fecha
history_sorted = sorted(history, key=lambda h: h["created_at"]) history_sorted = sorted(history, key=lambda h: h["created_at"])
formatted_history = [] formatted_history = []
@@ -1,5 +1,3 @@
# services/docit2mf_build_service.py
from typing import List, Union from typing import List, Union
from api.models.docit2mf_models import DoCIT2MFRequest from api.models.docit2mf_models import DoCIT2MFRequest
from api.models.docmf_models import DoCMFRequest from api.models.docmf_models import DoCMFRequest
@@ -32,13 +30,11 @@ def _enforce_upper_ge_lower(lower, upper):
Garantiza que la UMF (upper) nunca quede por debajo de la LMF (lower). Garantiza que la UMF (upper) nunca quede por debajo de la LMF (lower).
Ajusta los valores de pertenencia si es necesario. Ajusta los valores de pertenencia si es necesario.
""" """
# left nodes
for i in range(len(lower["left_nodes"])): for i in range(len(lower["left_nodes"])):
ly = lower["left_nodes"][i][1] ly = lower["left_nodes"][i][1]
uy = upper["left_nodes"][i][1] uy = upper["left_nodes"][i][1]
upper["left_nodes"][i][1] = max(uy, ly) upper["left_nodes"][i][1] = max(uy, ly)
# right nodes
for i in range(len(lower["right_nodes"])): for i in range(len(lower["right_nodes"])):
ly = lower["right_nodes"][i][1] ly = lower["right_nodes"][i][1]
uy = upper["right_nodes"][i][1] uy = upper["right_nodes"][i][1]
@@ -58,9 +54,6 @@ def build_it2mf_from_level(level: DoCIT2MFRequest):
} }
""" """
# -------------------------
# LMF (mínimos)
# -------------------------
left_min = _extract_bounds(level.left_blank_cards, "min") left_min = _extract_bounds(level.left_blank_cards, "min")
right_min = _extract_bounds(level.right_blank_cards, "min") right_min = _extract_bounds(level.right_blank_cards, "min")
@@ -74,18 +67,13 @@ def build_it2mf_from_level(level: DoCIT2MFRequest):
right_blank_cards=right_min, right_blank_cards=right_min,
) )
# Convertir a dict para poder manipular como diccionario
lower = build_doc_mf_level(lower_level) lower = build_doc_mf_level(lower_level)
if hasattr(lower, "model_dump"): if hasattr(lower, "model_dump"):
lower = lower.model_dump() lower = lower.model_dump()
# Asegurar que los nodos son listas mutables y ordenar
lower["left_nodes"] = _sort_nodes(lower["left_nodes"]) lower["left_nodes"] = _sort_nodes(lower["left_nodes"])
lower["right_nodes"] = _sort_nodes(lower["right_nodes"]) lower["right_nodes"] = _sort_nodes(lower["right_nodes"])
# -------------------------
# UMF (máximos)
# -------------------------
left_max = _extract_bounds(level.left_blank_cards, "max") left_max = _extract_bounds(level.left_blank_cards, "max")
right_max = _extract_bounds(level.right_blank_cards, "max") right_max = _extract_bounds(level.right_blank_cards, "max")
@@ -99,18 +87,13 @@ def build_it2mf_from_level(level: DoCIT2MFRequest):
right_blank_cards=right_max, right_blank_cards=right_max,
) )
# Convertir a dict para poder manipular como diccionario
upper = build_doc_mf_level(upper_level) upper = build_doc_mf_level(upper_level)
if hasattr(upper, "model_dump"): if hasattr(upper, "model_dump"):
upper = upper.model_dump() upper = upper.model_dump()
# Asegurar que los nodos son listas mutables y ordenar
upper["left_nodes"] = _sort_nodes(upper["left_nodes"]) upper["left_nodes"] = _sort_nodes(upper["left_nodes"])
upper["right_nodes"] = _sort_nodes(upper["right_nodes"]) upper["right_nodes"] = _sort_nodes(upper["right_nodes"])
# -------------------------
# FIX: evitar inversión vertical (UMF < LMF)
# -------------------------
upper = _enforce_upper_ge_lower(lower, upper) upper = _enforce_upper_ge_lower(lower, upper)
return { return {
@@ -1,5 +1,3 @@
# services/docmf_build_service.py
from api.models.docmf_models import DoCMFRequest from api.models.docmf_models import DoCMFRequest
from api.models.user_models import FuzzyTerm from api.models.user_models import FuzzyTerm
@@ -8,7 +6,6 @@ def build_single_docmf(request: DoCMFRequest):
a, b = request.core a, b = request.core
c, d = request.support c, d = request.support
# LEFT
TL = sum(e + 1 for e in request.left_blank_cards) TL = sum(e + 1 for e in request.left_blank_cards)
YL = 1 / TL YL = 1 / TL
left_nodes = [] left_nodes = []
@@ -21,7 +18,6 @@ def build_single_docmf(request: DoCMFRequest):
acc += request.left_blank_cards[i - 1] + 1 acc += request.left_blank_cards[i - 1] + 1
left_nodes.append((x, round(acc * YL, 4))) left_nodes.append((x, round(acc * YL, 4)))
# RIGHT
TR = sum(e + 1 for e in request.right_blank_cards) TR = sum(e + 1 for e in request.right_blank_cards)
YR = 1 / TR YR = 1 / TR
right_nodes = [] right_nodes = []
@@ -4,7 +4,6 @@ def validate_simple_level(level: dict):
a, b = level["core"] a, b = level["core"]
c, d = level["support"] c, d = level["support"]
# Validación: núcleo dentro del soporte
if not (c <= a < b <= d): if not (c <= a < b <= d):
errors.append("El núcleo debe estar completamente dentro del soporte.") errors.append("El núcleo debe estar completamente dentro del soporte.")
@@ -4,11 +4,9 @@ def validate_single_level(level: dict):
a, b = level["core"] a, b = level["core"]
c, d = level["support"] c, d = level["support"]
# Core dentro del soporte
if not (c <= a < b <= d): if not (c <= a < b <= d):
errors.append("El núcleo debe estar completamente dentro del soporte.") errors.append("El núcleo debe estar completamente dentro del soporte.")
# Nodos cubren correctamente el soporte
left = level["left_nodes"] left = level["left_nodes"]
right = level["right_nodes"] right = level["right_nodes"]