schema
SQLAlchemy ORM for the cst_calculation cache table (v1).
Each version package declares its own local Base (its own MetaData) so that
multiple versions of the same table can coexist in one process without a
__tablename__ collision. Base carries the shared nullable tags column and
every ORM in this version inherits it directly.
Adding a column to a new version is an additive migration (see
migrations.py): add a nullable mapped_column in the new version's schema and
a corresponding upgrade step — never rename/drop/retype in place.
Classes
Base
class Base(**kwargs: Any):Local declarative base for cst_calculation v1.
Owns an isolated MetaData (so it never collides with another version of
this table) and inherits the shared columns from types/schema.py's Base.
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and
values in kwargs.
Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.
Ancestors
Subclasses
CSTCalculation
class CSTCalculation(**kwargs):SQLAlchemy model for the cst_calculation cache table.
One row per (task_hash, file_id): the Central Subfield / Central Retinal
Thickness metrics computed for a scan from retinal-layer segmentation and
fovea landmark predictions. Thickness is a deterministic function of the
scan and the model output (and the config, which folds into task_hash) —
NOT of the project — so project_id is provenance only and excluded from
the key, letting two projects on the same datasource share rows (mirrors
model_inferences and fluid_calculation).
The metrics live in the schemaless metrics_json blob (the CSTMetrics
scalar fields plus the fovea_coordinates tuple). An uncomputable file is
recorded with a null metrics_json and a non-null error carrying the
reason: missing_data:<fields> when the datasource had no metadata row for
it, calculation_error:<detail> when the maths raised. The shared thickness
runner produces those strings (see
bitfount.steps.data_utils.thickness_calculation); exactly one of
metrics_json and error is set per row, matching the sibling
fluid_calculation and gcc_calculation tables.
A simple constructor that allows initialization from kwargs.
Sets attributes on the constructed instance using the names and
values in kwargs.
Only keys that are present as attributes of the instance's class are allowed. These could be, for example, any mapped columns or relationships.
Ancestors
Variables
-
error : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
file_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
last_accessed_at : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
metrics_json : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
processed_at : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
project_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
run_id : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
tags : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]
-
task_hash : Union[sqlalchemy.orm.attributes.InstrumentedAttribute[+_T_co], +_T_co]