File size: 1,209 Bytes
db30991
 
 
 
 
 
 
 
 
 
 
 
 
 
2c5c2f4
db30991
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""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


@app.get("/health")
def health():
    return {"status": "ok", "locale": LOCALE}


@app.post("/parse")
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,
    }


@app.post("/parse_batch")
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}