File size: 1,211 Bytes
f8768df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"""Public names for relevance inputs, decisions, and screening results."""

from __future__ import annotations

from dataclasses import dataclass

from ._core.accelerated.compact import (
    ArrowCompactFacts,
    CompactColumnScreenBatch,
    ScreeningResult,
)
from ._core.models import (
    Article,
    ArticleAdmissibilityStatus,
    EvidencePath,
    ExposureFamily,
    ExposureRelevanceStatus,
    RankedCandidate,
    RelevanceDecision,
)

Prediction = RelevanceDecision
RankedPrediction = RankedCandidate
PythonScreeningBatch = CompactColumnScreenBatch
ArrowScreeningBatch = ArrowCompactFacts
ScreeningBatch = PythonScreeningBatch | ArrowScreeningBatch


@dataclass(frozen=True, slots=True)
class BackendInfo:
    """Availability and acceleration details for one backend."""

    name: str
    available: bool
    accelerated: bool
    detail: str


__all__ = [
    "ArrowScreeningBatch",
    "Article",
    "ArticleAdmissibilityStatus",
    "BackendInfo",
    "EvidencePath",
    "ExposureFamily",
    "ExposureRelevanceStatus",
    "Prediction",
    "PythonScreeningBatch",
    "RankedPrediction",
    "ScreeningBatch",
    "ScreeningResult",
]