Files
konabot/konabot/common/ptimeparse/__init__.py
passthem 6f08c22b5b
All checks were successful
continuous-integration/drone/push Build is passing
LLM 胜利了!!!!!!
2025-11-21 16:13:38 +08:00

59 lines
1.6 KiB
Python

"""
Professional time parsing module for Chinese and English time expressions.
This module provides a robust parser for natural language time expressions,
supporting both Chinese and English formats with proper whitespace handling.
"""
import datetime
from typing import Optional
from .expression import TimeExpression
def parse(text: str, now: Optional[datetime.datetime] = None) -> datetime.datetime:
"""
Parse a time expression and return a datetime object.
Args:
text: The time expression to parse
now: The reference time (defaults to current time)
Returns:
A datetime object representing the parsed time
Raises:
TokenUnhandledException: If the input cannot be parsed
"""
return TimeExpression.parse(text, now)
class Parser:
"""
Parser for time expressions with backward compatibility.
Maintains the original interface:
>>> parser = Parser()
>>> result = parser.parse("10分钟后")
"""
def __init__(self, now: Optional[datetime.datetime] = None):
self.now = now or datetime.datetime.now()
def parse(self, text: str) -> datetime.datetime:
"""
Parse a time expression and return a datetime object.
This maintains backward compatibility with the original interface.
Args:
text: The time expression to parse
Returns:
A datetime object representing the parsed time
Raises:
TokenUnhandledException: If the input cannot be parsed
"""
return TimeExpression.parse(text, self.now)