| Total Complexity | 2 |
| Total Lines | 25 |
| Duplicated Lines | 0 % |
| Changes | 0 | ||
| 1 | """Class for combining multiple corpora so they behave like a single corpus""" |
||
| 2 | |||
| 3 | from __future__ import annotations |
||
| 4 | |||
| 5 | import itertools |
||
| 6 | from typing import TYPE_CHECKING |
||
| 7 | |||
| 8 | from .types import DocumentCorpus |
||
| 9 | |||
| 10 | if TYPE_CHECKING: |
||
| 11 | from annif.corpus.document import DocumentFile |
||
| 12 | |||
| 13 | |||
| 14 | class CombinedCorpus(DocumentCorpus): |
||
| 15 | """Class for combining multiple corpora so they behave like a single |
||
| 16 | corpus""" |
||
| 17 | |||
| 18 | def __init__(self, corpora: list[DocumentFile]) -> None: |
||
| 19 | self._corpora = corpora |
||
| 20 | |||
| 21 | @property |
||
| 22 | def documents(self) -> itertools.chain: |
||
| 23 | return itertools.chain.from_iterable( |
||
| 24 | [corpus.documents for corpus in self._corpora] |
||
| 25 | ) |
||
| 26 |