Parser de dată și oră în română naturală — zero dependențe
Project description
rodate
Parser de dată și oră în română naturală. Zero dependențe — doar Python stdlib.
from rodate import parse_date_ro, parse_time_ro, parse_datetime_ro
import datetime
today = datetime.date(2026, 6, 30) # marți
parse_date_ro("poimâine", today) # → date(2026, 7, 2)
parse_date_ro("joi viitoare", today) # → date(2026, 7, 9)
parse_date_ro("15 iulie", today) # → date(2026, 7, 15)
parse_time_ro("la nouă fără un sfert") # → time(8, 45)
parse_time_ro("la trei după-amiaza") # → time(15, 0)
parse_time_ro("zece și jumătate") # → time(10, 30)
parse_time_ro("seara pe la 7") # → time(19, 0)
parse_datetime_ro("mâine la trei după-amiaza", today)
# → datetime(2026, 7, 1, 15, 0)
Instalare
pip install rodate
Ce rezolvă
Nicio librărie existentă nu parsează corect română naturală:
| Expresie | rodate | dateparser |
|---|---|---|
| "poimâine" | ✅ | ❌ |
| "joi viitoare" | ✅ | ❌ |
| "seara pe la 7" | ✅ | ❌ |
| "nouă fără un sfert" | ✅ | ❌ |
| "juma de zece" | ✅ | ❌ |
| "marțișor" → nu e marți | ✅ | ❌ |
Referință API
parse_date_ro(text, today=None) → datetime.date | None
| Expresie | Rezultat |
|---|---|
| "ieri", "azi", "mâine", "poimâine" | relativ la azi |
| "joi", "vineri" | ziua viitoare cea mai apropiată |
| "joi viitoare", "luni viitoare" | săptămâna următoare |
| "săptămâna asta joi" | joi din săptămâna curentă |
| "peste 3 zile" | azi + 3 |
| "în weekend" | sâmbăta viitoare |
| "15 iulie", "1 ianuarie" | dată fixă (anul următor dacă a trecut) |
| "pe 10" | ziua 10 a lunii curente/următoare |
parse_time_ro(text, assume_pm=True) → datetime.time | None
| Expresie | Rezultat |
|---|---|
| "la prânz", "amiaza" | 12:00 |
| "miezul nopții" | 00:00 |
| "14:30", "10.30" | ore exacte |
| "zece și jumătate" | 10:30 |
| "nouă fără un sfert" | 08:45 |
| "la trei după-amiaza" | 15:00 |
| "seara pe la 7" | 19:00 |
| "la 7 dimineața" | 07:00 |
| "juma de zece" | 10:30 |
assume_pm=True — ore 1–7 fără context explicit → după-amiaza (util pentru agenți de rezervări).
Dezactivează cu assume_pm=False pentru uz general.
parse_datetime_ro(text, today=None, assume_pm=True) → datetime.datetime | None
Combină parse_date_ro și parse_time_ro. Returnează None dacă lipsește data sau ora.
Licență
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rodate-0.1.0.tar.gz.
File metadata
- Download URL: rodate-0.1.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1dbc543fbbd0aa1fb47ddd56398f4453ea40e5220f3c7d88d9559b9435cf364
|
|
| MD5 |
f4ede06209c1c4090258b4c5c6de3554
|
|
| BLAKE2b-256 |
d9c0197219c80e1f9c0d4d17d6db7f85de2f98d058fe4bb137567bc19fd36844
|
File details
Details for the file rodate-0.1.0-py3-none-any.whl.
File metadata
- Download URL: rodate-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f37e8ad4d475d53a5b1993a55a53efc90b199d4e098674642ef959dd543c847
|
|
| MD5 |
25767079bcfce6a58f51c22452dec952
|
|
| BLAKE2b-256 |
3ccdd71ae59122aadf9c857f795d2690c83ece0c3a1aa2296281313f78532917
|