annif.corpus.combine   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 14
dl 0
loc 25
rs 10
c 0
b 0
f 0
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A CombinedCorpus.documents() 0 4 1
A CombinedCorpus.__init__() 0 2 1
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