annual.ruleparser
Parse Rule Expressions.
Functions
|
Generate rule parser. |
Module Contents
- annual.ruleparser.rule_parser(year: int, funcs: dict[str, datetime.date | None] | None = None) lark.Lark
Generate rule parser.
- Parameters:
year (int) – The year for which new dates are computed.
funcs (dict[str, datetime.date | None] | None, optional) – A dictionary of precomputed dates.
- Returns:
A
Larkparser instance.- Return type:
Lark
Example
>>> from annual.ruleparser import rule_parser >>> rule_parser(2024).parse('Sunday after may 1') datetime.date(2024, 5, 5)
You can use the
funcsargument to supply precomputed dates, which can be referred to in the given expression.>>> from annual.ruleparser import rule_parser >>> year = 2024 >>> funcs = {'easter': datetime.date(year, 3, 31)} >>> rule_parser(year, funcs).parse('49 days after easter') datetime.date(2024, 5, 19)