bhf_smarthealth.validate.healthapp_schema

On this page

bhf_smarthealth.validate.healthapp_schema#

This module contains pydantic validation models for the raw Health App data ingested into the Smart Health pipeline

Attributes#

Classes#

StandardField

!!! abstract "Usage Documentation"

IndividualWorkout

!!! abstract "Usage Documentation"

WorkoutField

!!! abstract "Usage Documentation"

HealthAppSummaryData

Validation model for the Health App data received from Daiser.

Functions#

validate_offset(→ int)

Validate that the timezone minutes offset (from UTC+00:00) is a valid value

Module Contents#

bhf_smarthealth.validate.healthapp_schema.logger#
bhf_smarthealth.validate.healthapp_schema.validate_offset(v: int) → int[source]#

Validate that the timezone minutes offset (from UTC+00:00) is a valid value

Parameters:

v (int) – Value (in minutes) of timezone offset to validate

Returns:

Validated offset value (in minutes)

Return type:

int

Raises:

ValueError – Raised if the offset value is out of bounds or not in 15-minute increments

class bhf_smarthealth.validate.healthapp_schema.StandardField(/, **data: Any)[source]#

Bases: pydantic.BaseModel

!!! abstract “Usage Documentation”

[Models](../concepts/models.md)

A base class for creating Pydantic models.

__class_vars__#

The names of the class variables defined on the model.

__private_attributes__#

Metadata about the private attributes of the model.

__signature__#

The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__#

Whether model building is completed, or if there are still undefined fields.

__pydantic_core_schema__#

The core schema of the model.

__pydantic_custom_init__#

Whether the model has a custom __init__ function.

__pydantic_decorators__#

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_generic_metadata__#

Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.

__pydantic_parent_namespace__#

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__#

The name of the post-init method for the model, if defined.

__pydantic_root_model__#

Whether the model is a [RootModel][pydantic.root_model.RootModel].

__pydantic_serializer__#

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_validator__#

The pydantic-core SchemaValidator used to validate instances of the model.

__pydantic_fields__#

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_computed_fields__#

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__#

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_fields_set__#

The names of fields explicitly set during instantiation.

__pydantic_private__#

Values of private attributes set on the model instance.

model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

source: str#
unit: str#
type: Literal['HealthDataType.ACTIVE_ENERGY_BURNED', 'HealthDataType.BASAL_ENERGY_BURNED', 'HealthDataType.HEART_RATE', 'HealthDataType.RESTING_HEART_RATE', 'HealthDataType.STEPS', 'HealthDataType.FLIGHTS_CLIMBED', 'HealthDataType.SLEEP_ASLEEP', 'HealthDataType.SLEEP_AWAKE', 'HealthDataType.SLEEP_DEEP', 'HealthDataType.SLEEP_LIGHT', 'HealthDataType.SLEEP_REM', 'HealthDataType.WALKING_SPEED', 'HealthDataType.DISTANCE_DELTA']#
value: float | None = None#
min_value: float | None = None#
max_value: float | None = None#
check_value_or_range() → StandardField[source]#
class bhf_smarthealth.validate.healthapp_schema.IndividualWorkout(/, **data: Any)[source]#

Bases: pydantic.BaseModel

!!! abstract “Usage Documentation”

[Models](../concepts/models.md)

A base class for creating Pydantic models.

__class_vars__#

The names of the class variables defined on the model.

__private_attributes__#

Metadata about the private attributes of the model.

__signature__#

The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__#

Whether model building is completed, or if there are still undefined fields.

__pydantic_core_schema__#

The core schema of the model.

__pydantic_custom_init__#

Whether the model has a custom __init__ function.

__pydantic_decorators__#

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_generic_metadata__#

Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.

__pydantic_parent_namespace__#

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__#

The name of the post-init method for the model, if defined.

__pydantic_root_model__#

Whether the model is a [RootModel][pydantic.root_model.RootModel].

__pydantic_serializer__#

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_validator__#

The pydantic-core SchemaValidator used to validate instances of the model.

__pydantic_fields__#

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_computed_fields__#

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__#

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_fields_set__#

The names of fields explicitly set during instantiation.

__pydantic_private__#

Values of private attributes set on the model instance.

model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

energy: int#
startTime: datetime.datetime#
type: str#
distance: float | None#
endTime: datetime.datetime#
class bhf_smarthealth.validate.healthapp_schema.WorkoutField(/, **data: Any)[source]#

Bases: pydantic.BaseModel

!!! abstract “Usage Documentation”

[Models](../concepts/models.md)

A base class for creating Pydantic models.

__class_vars__#

The names of the class variables defined on the model.

__private_attributes__#

Metadata about the private attributes of the model.

__signature__#

The synthesized __init__ [Signature][inspect.Signature] of the model.

__pydantic_complete__#

Whether model building is completed, or if there are still undefined fields.

__pydantic_core_schema__#

The core schema of the model.

__pydantic_custom_init__#

Whether the model has a custom __init__ function.

__pydantic_decorators__#

Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.

__pydantic_generic_metadata__#

Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.

__pydantic_parent_namespace__#

Parent namespace of the model, used for automatic rebuilding of models.

__pydantic_post_init__#

The name of the post-init method for the model, if defined.

__pydantic_root_model__#

Whether the model is a [RootModel][pydantic.root_model.RootModel].

__pydantic_serializer__#

The pydantic-core SchemaSerializer used to dump instances of the model.

__pydantic_validator__#

The pydantic-core SchemaValidator used to validate instances of the model.

__pydantic_fields__#

A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.

__pydantic_computed_fields__#

A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.

__pydantic_extra__#

A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to ‘allow’.

__pydantic_fields_set__#

The names of fields explicitly set during instantiation.

__pydantic_private__#

Values of private attributes set on the model instance.

type: Literal['WORKOUT']#
count: int#
source: str#
workouts: List[IndividualWorkout]#
unit: str#
totalDistance: float | None#
totalEnergy: int#
class bhf_smarthealth.validate.healthapp_schema.HealthAppSummaryData(/, **data: Any)[source]#

Bases: pydantic.BaseModel

Validation model for the Health App data received from Daiser. Compulsory fields: sheffield_id, date, date of synchronisation, the UTC timezone offset in mins, and specific activity metrics.

model_config#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

sheffield_id: str#
date: HealthAppSummaryData.date#
sync_date: datetime.datetime#
timezone_offset_mins: Annotated[int, AfterValidator(validate_offset)]#
health_data: List[Annotated[WorkoutField | StandardField, Field(discriminator='type')]]#