nannyml.io.db.entities module

Contains the definitions of the database entities that map directly to the underlying table definitions.

Every Result class has a matching Entity class, which implies that each calculator/estimator will export its results into a specific table.

class nannyml.io.db.entities.CBPEPerformanceMetric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool, upper_threshold: Optional[float] = None, lower_threshold: Optional[float] = None)[source]

Bases: nannyml.io.db.entities.Metric

Represents results of the CBPE estimator.

Stored in the cbpe_performance_metrics table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

end_timestamp: datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

lower_threshold: Optional[float]

The lower alerting threshold value

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime

The start datetime of the Chunk

timestamp: datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

upper_threshold: Optional[float]

The upper alerting threshold value

value: float

The value returned by the method

class nannyml.io.db.entities.DLEPerformanceMetric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool, upper_threshold: Optional[float] = None, lower_threshold: Optional[float] = None)[source]

Bases: nannyml.io.db.entities.Metric

Represents results of the DLE estimator.

Stored in the dle_performance_metrics table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

end_timestamp: datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

lower_threshold: Optional[float]

The lower alerting threshold value

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime

The start datetime of the Chunk

timestamp: datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

upper_threshold: Optional[float]

The upper alerting threshold value

value: float

The value returned by the method

class nannyml.io.db.entities.DataReconstructionFeatureDriftMetric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool, upper_threshold: Optional[float] = None, lower_threshold: Optional[float] = None)[source]

Bases: nannyml.io.db.entities.Metric

Represents results of the DataReconstructionDriftCalculator.

Stored in the data_reconstruction_feature_drift_metrics table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

end_timestamp: datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

lower_threshold: Optional[float]

The lower alerting threshold value

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime

The start datetime of the Chunk

timestamp: datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

upper_threshold: Optional[float]

The upper alerting threshold value

value: float

The value returned by the method

class nannyml.io.db.entities.Metric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool)[source]

Bases: sqlmodel.main.SQLModel

Base Metric definition

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

end_timestamp: datetime.datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime.datetime

The start datetime of the Chunk

timestamp: datetime.datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

value: float

The value returned by the method

class nannyml.io.db.entities.Model(*, id: Optional[int] = None, name: str)[source]

Bases: sqlmodel.main.SQLModel

Represents a Model.

Only created when the model_name property of the DatabaseWriter was given. The id field here will act as a foreign key in the run table and all metric tables.

Stored in the model table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

id: Optional[int]
name: str
runs: List[Run]
class nannyml.io.db.entities.RealizedPerformanceMetric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool, upper_threshold: Optional[float] = None, lower_threshold: Optional[float] = None)[source]

Bases: nannyml.io.db.entities.Metric

Represents results of the RealizedPerformanceCalculator.

Stored in the realized_performance_metrics table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

end_timestamp: datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

lower_threshold: Optional[float]

The lower alerting threshold value

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime

The start datetime of the Chunk

timestamp: datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

upper_threshold: Optional[float]

The upper alerting threshold value

value: float

The value returned by the method

class nannyml.io.db.entities.Run(*, id: Optional[int] = None, model_id: Optional[int] = None, execution_timestamp: datetime.datetime = datetime.datetime(2023, 5, 24, 8, 54, 46, 45493))[source]

Bases: sqlmodel.main.SQLModel

Represents a NannyML run, allowing to filter results based on what run generated them.

The id field here will act as a foreign key in all metric tables.

Stored in the run table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

execution_timestamp: datetime.datetime
id: Optional[int]
model: nannyml.io.db.entities.Model
model_id: Optional[int]
class nannyml.io.db.entities.UnivariateDriftMetric(*, id: Optional[int] = None, model_id: Optional[int] = None, run_id: int = None, start_timestamp: datetime.datetime, end_timestamp: datetime.datetime, timestamp: datetime.datetime, metric_name: str, value: float, alert: bool, column_name: str)[source]

Bases: nannyml.io.db.entities.Metric

Represents results of the UnivariateDriftCalculator.

Stored in the univariate_drift_metrics table.

Create a new model by parsing and validating input data from keyword arguments.

Raises ValidationError if the input data cannot be parsed to form a valid model.

alert: bool

Indicates if the method raised an alert for this Chunk

column_name: str

The name of the column this metric belongs to

end_timestamp: datetime

The end datetime of the Chunk

id: Optional[int]

The technical identifier for this database row

metric_name: str

The name of the method being calculated, e.g. ‘jensen_shannon’ or ‘chi2’

model_id: Optional[int]

Foreign key pointing to a record in the model table

run_id: int

Foreign key pointing to a record in the run table

start_timestamp: datetime

The start datetime of the Chunk

timestamp: datetime

The ‘center’ timestamp of the Chunk, i.e. the mean of the start and end timestamps

value: float

The value returned by the method