Spaces:
Sleeping
Sleeping
| """Dateparser Server for HuggingFace Spaces.""" | |
| import os | |
| from fastapi import FastAPI | |
| from pydantic import BaseModel | |
| import dateparser | |
| LOCALE = os.environ.get("LOCALE", "pt-BR") | |
| app = FastAPI() | |
| class ParseRequest(BaseModel): | |
| text: str | |
| locale: str | None = None | |
| base_date: str | None = None # accepted, used if provided | |
| class ParseBatchRequest(BaseModel): | |
| texts: list[str] | |
| locale: str | None = None | |
| def health(): | |
| return {"status": "ok", "locale": LOCALE} | |
| def parse(req: ParseRequest): | |
| locale = req.locale or LOCALE | |
| result = dateparser.parse(req.text, languages=[locale.split("-")[0]]) | |
| return { | |
| "input": req.text, | |
| "parsed": result.isoformat() if result else None, | |
| "locale": locale, | |
| } | |
| def parse_batch(req: ParseBatchRequest): | |
| locale = req.locale or LOCALE | |
| lang = locale.split("-")[0] | |
| results = [] | |
| for text in req.texts: | |
| result = dateparser.parse(text, languages=[lang]) | |
| results.append({ | |
| "input": text, | |
| "parsed": result.isoformat() if result else None, | |
| }) | |
| return {"results": results, "locale": locale} | |