Source code for markovchain.scanner

from .util import SaveLoad


[docs]class Scanner(SaveLoad): """Base scanner class. Attributes ---------- classes : `dict` Scanner class group. START Sentence start token. END Sentence end token. Examples -------- >>> scan = Scanner(lambda data: data.split()) >>> scan('a b c') ['a', 'b', 'c'] """ classes = {} END = None START = None
[docs] def __init__(self, scan=None): """Base scanner constructor. Parameters ---------- scan : `function`, optional """ if scan is not None: self.do_scan = scan
[docs] def __call__(self, data, part=False): """Scan data. Parameters ---------- data Data to scan. part : `bool`, optional `True` if data is partial (default: `False`). Returns ------- `object` self.scan(data) """ if self.do_scan is None: return data return self.do_scan(data)
[docs] def reset(self): """Reset scanner state. """ pass