Coverage for src/extratools_core/strtools.py: 0%
12 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-06 00:04 -0700
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-06 00:04 -0700
1from collections.abc import Iterable
3from .iter import iter_to_grams
4from .seq.subseq import common_subseq, enumerate_subseqs
7def str_to_grams(
8 s: str,
9 *,
10 n: int,
11 pad: str = '',
12) -> Iterable[str]:
13 if len(pad) > 1:
14 raise ValueError
16 for c in iter_to_grams(s, n=n, pad=pad or None):
17 yield ''.join(c)
20def common_substr(a: str, b: str) -> str:
21 return ''.join(common_subseq(a, b))
24def enumerate_substrs(s: str) -> Iterable[str]:
25 return map(str, enumerate_subseqs(s))