scouter_types/psi/
types.rs1use crate::util::PyHelperFuncs;
2use chrono::{DateTime, Utc};
3use pyo3::prelude::*;
4use serde::{Deserialize, Serialize};
5use std::collections::BTreeMap;
6
7#[pyclass]
8#[derive(Serialize, Deserialize, Debug, Clone, Default)]
9pub struct BinnedPsiMetric {
10 #[pyo3(get)]
11 pub created_at: Vec<DateTime<Utc>>,
12
13 #[pyo3(get)]
14 pub psi: Vec<f64>,
15
16 #[pyo3(get)]
17 pub overall_psi: f64,
18
19 #[pyo3(get)]
20 pub bins: BTreeMap<usize, f64>,
21}
22
23#[pymethods]
24impl BinnedPsiMetric {
25 pub fn __str__(&self) -> String {
26 PyHelperFuncs::__str__(self)
28 }
29}
30
31#[pyclass]
32#[derive(Serialize, Deserialize, Debug, Clone, Default)]
33pub struct BinnedPsiFeatureMetrics {
34 #[pyo3(get)]
35 pub features: BTreeMap<String, BinnedPsiMetric>,
36}
37
38#[pymethods]
39impl BinnedPsiFeatureMetrics {
40 pub fn __str__(&self) -> String {
41 PyHelperFuncs::__str__(self)
43 }
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize, Default)]
47pub struct FeatureBinProportionResult {
48 pub feature: String,
49 pub created_at: Vec<DateTime<Utc>>,
50 pub bin_proportions: Vec<BTreeMap<usize, f64>>,
51 pub overall_proportions: BTreeMap<usize, f64>,
52}