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#
!!! abstract "Usage Documentation" |
|
!!! abstract "Usage Documentation" |
|
!!! abstract "Usage Documentation" |
|
Validation model for the Health App data received from Daiser. |
Functions#
|
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.BaseModelValidation 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')]]#