molecular / app /routers /descriptors.py
ivanm151's picture
init
6796365
raw
history blame contribute delete
629 Bytes
from .schemas import MoleculeDescriptors, InputData
from fastapi import APIRouter, HTTPException
from molecule import get_molecule_properties
router = APIRouter()
@router.post("/descriptor", response_model=MoleculeDescriptors)
async def descriptor(payload: InputData):
try:
props_dict = get_molecule_properties(payload.smiles)
props_model = MoleculeDescriptors(**props_dict)
return props_model
except ValueError as e:
raise HTTPException(status_code=400, detail=str(e))
except Exception as e:
raise HTTPException(status_code=500, detail=f"Ошибка сервера: {e}")