Skip to main content

DateParser

qddate.DateParser holds the compiled pattern catalog and the indexes used to narrow candidates before pyparsing runs.

from qddate import DateParser

parser = DateParser()
parser = DateParser(languages=["en", "de"])
parser = DateParser(generate=True, base_only=False)

Constructor​

DateParser(generate=True, patterns=ALL_PATTERNS, base_only=False, languages=None)
ParameterDefaultMeaning
generateTrueExpand each base date pattern with time-of-day and trailing-text variants
patternsqddate.patterns.ALL_PATTERNSPattern dicts to load
base_onlyFalseKeep only base patterns; skip generated "date plus extra text" variants
languagesNoneLanguage code, list of codes, or None for all languages

If languages is a non-empty string or list, the catalog is filtered with qddate.patterns.get_patterns_for_languages before generation. Empty list and None both mean "all languages". Invalid codes raise ValueError.

See languages= for allow-list behavior.

Custom pattern lists​

Advanced callers can pass a subset or a locally defined list:

from qddate.patterns import PATTERNS_EN, INTEGER_LIKE_PATTERNS

parser = DateParser(patterns=PATTERNS_EN + INTEGER_LIKE_PATTERNS)

The parser uses exactly those patterns. Each item is a dict with at least key, pattern (pyparsing grammar), length, and usually format.

Instance reuse​

Keep one instance for the lifetime of the worker. Construction compiles grammars, builds length indexes, and stamps language/separator metadata onto generated variants.