Skip to content

BaseParser

Pactole Index / Data / BaseParser

Auto-generated documentation for data.base_parser module.

BaseParser

Show source in base_parser.py:9

A base class for data parsers.

Arguments

combination_factory (CombinationFactory | LotteryCombination | Any): A factory function or class to create a combination instance. If None, a default LotteryCombination instance will be used. Default is None.

Examples

>>> class MyParser(BaseParser):
...     def __call__(self, data: dict) -> DrawRecord:
...         # Implement parsing logic here
...         return DrawRecord(...)
>>> parser = MyParser()
>>> record = parser({
...     "date": "2022-01-15",
...     "deadline": "2022-02-15",
...     "main_1": 12,
...     "main_2": 5,
...     "main_3": 23,
...     "bonus_1": 7,
... })
>>> print(record)
DrawRecord(
    period='202201',
    draw_date=datetime.date(2022, 1, 15),
    deadline_date=datetime.date(2022, 2, 15),
    combination=...,
    numbers=...,
    winning_ranks=...)

Signature

class BaseParser:
    def __init__(
        self, combination_factory: CombinationFactory | LotteryCombination | Any = None
    ) -> None: ...

BaseParser().call

Show source in base_parser.py:49

Parse a line of data and return a DrawRecord.

Arguments

  • Data dict - A dictionary representing a line of data.

Returns

  • DrawRecord - The record parsed from the line of data.

Examples

>>> class SimpleParser(BaseParser):
...     def __call__(self, data: dict) -> DrawRecord:
...         return DrawRecord(
...             period=data["date"][:7].replace("-", ""),
...             draw_date=datetime.date.fromisoformat(data["date"]),
...             deadline_date=datetime.date.fromisoformat(data["deadline"]),
...             combination=None,
...             numbers={},
...             winning_ranks=[],
...         )
>>> parser = SimpleParser()
>>> record = parser({"date": "2022-01-15", "deadline": "2022-02-15", ... }, factory)
>>> print(record)
DrawRecord(
    period='202201',
    draw_date=datetime.date(2022, 1, 15),
    deadline_date=datetime.date(2022, 2, 15),
    combination=None,
    numbers={},
    winning_ranks=[])

Signature

def __call__(self, data: dict) -> DrawRecord: ...

BaseParser().combination_factory

Show source in base_parser.py:82

Get the combination factory.

Returns

  • CombinationFactory - The combination factory used by this parser.

Examples

>>> parser = BaseParser()
>>> factory = parser.combination_factory
>>> print(factory)
<function LotteryCombination.get_combination at 0x...>

Signature

@property
def combination_factory(self) -> CombinationFactory: ...