Source code for gloryxr._models
from abc import ABC, abstractmethod
from pathlib import Path
from typing import Any, override
import joblib
import numpy as np
import numpy.typing as npt
[docs]
class _ModelProvider(ABC):
@abstractmethod
def predict_proba(
self,
subset: str,
descriptors: npt.ArrayLike,
) -> npt.NDArray[np.float_]: ...
[docs]
class _LocalModelProvider(_ModelProvider):
def __init__(self) -> None:
models_path = Path("models")
self.models: dict[str, Any] = {}
for model_path in models_path.glob("*.joblib"):
self.models[model_path.stem] = joblib.load(filename=model_path)
@override
def predict_proba(
self,
subset: str,
descriptors: npt.ArrayLike,
) -> npt.NDArray[np.float_]:
return self.models[subset].predict_proba(descriptors)