File size: 731 Bytes
7b903ca
 
 
 
 
 
928da19
 
e79a6a4
7b903ca
 
 
 
 
6d23314
 
e79a6a4
7b903ca
 
 
 
 
2583351
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from __future__ import annotations

from typing import Optional

from models import ExplainerResult
from explainers.explainer_percent import explain_percent_question
from explainers.explainer_ratio import explain_ratio_question
from explainers.explainer_algebra import explain_algebra_question
from explainers.explainer_probability import explain_probability_question


def route_explainer(text: str) -> Optional[ExplainerResult]:
    for fn in (
        explain_percent_question,
        explain_ratio_question,
        explain_algebra_question,
        explain_probability_question
    ):
        result = fn(text)
        if result is not None and getattr(result, "understood", False):
            return result

    return None