bhf_smarthealth.validate.fitbit_schema

On this page

bhf_smarthealth.validate.fitbit_schema#

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

Attributes#

Classes#

FitbitSummaryDatapoint

!!! abstract "Usage Documentation"

FitbitSummaryData

Validation model for the Fitbit summary data received from Daiser.

IntradayDataPoint

Represents a measurement for a single fitbit intraday timepoint.

IntradayDataList

Represents the full list of intraday data points captured for a single Intraday metric.

Module Contents#

bhf_smarthealth.validate.fitbit_schema.logger#
class bhf_smarthealth.validate.fitbit_schema.FitbitSummaryDatapoint(/, **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].

timestamp: datetime.datetime = None#
value: int = None#
units: str#
class bhf_smarthealth.validate.fitbit_schema.FitbitSummaryData(/, **data: Any)[source]#

Bases: pydantic.BaseModel

Validation model for the Fitbit summary data received from Daiser. Compulsory fields: sheffield_id, timestamp, and specific activity metrics. All other fields are optional.

Each of these fields should contain a nested JSON object containing a dateTime, value, and units field.

model_config#

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

sheffield_id: str#
date: FitbitSummaryData.date#
calories: FitbitSummaryDatapoint#
minutesSedentary: FitbitSummaryDatapoint#
steps: FitbitSummaryDatapoint | None = None#
minutesLightlyActive: FitbitSummaryDatapoint | None = None#
minutesFairlyActive: FitbitSummaryDatapoint | None = None#
minutesVeryActive: FitbitSummaryDatapoint | None = None#
HeartRatePeakMinutes: FitbitSummaryDatapoint | None = None#
HeartRateCardioMinutes: FitbitSummaryDatapoint | None = None#
HeartRateFatBurnMinutes: FitbitSummaryDatapoint | None = None#
HeartRateResting: FitbitSummaryDatapoint | None = None#
minutesAsleep: FitbitSummaryDatapoint | None = None#
minutesAwake: FitbitSummaryDatapoint | None = None#
minutesToFallAsleep: FitbitSummaryDatapoint | None = None#
timeInBed: FitbitSummaryDatapoint | None = None#
efficiency: FitbitSummaryDatapoint | None = None#
classmethod log_optional_fields_present(data: dict) → dict[source]#
check_sum_of_minutes() → typing_extensions.Self[source]#
class bhf_smarthealth.validate.fitbit_schema.IntradayDataPoint(/, **data: Any)[source]#

Bases: pydantic.BaseModel

Represents a measurement for a single fitbit intraday timepoint.

model_config#

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

timestamp: datetime.datetime = None#
value: int = None#
sheffield_id: str#
class bhf_smarthealth.validate.fitbit_schema.IntradayDataList(/, root=PydanticUndefined, **data)[source]#

Bases: pydantic.RootModel

Represents the full list of intraday data points captured for a single Intraday metric. It manages the Intraday time-series data, e.g. Steps, Heart Rate, Calories, etc collected by Fitbit. Please note, that while it should be compatible with other intraday measures from fitbit, it has only been tested with Steps and Heart Rate

root: list[IntradayDataPoint]#