Created function that extracts FileRecords from fit file.

This commit is contained in:
Filip 2025-03-16 11:06:00 +01:00
parent 1227bbef7f
commit e915c9ee82

View file

@ -1,5 +1,6 @@
from datetime import timedelta
from analyze_sport_data.heart_rate_record import HeartRateRecord
from garmin_fit_sdk import Decoder, Stream
class FileRecords:
@ -14,3 +15,17 @@ class FileRecords:
record.heart_rate) for record in heart_rate_records
]
self.heart_rate_time_offset = heart_rate_time_offset
def from_fit_file(file_path: str,
friendly_name: str | None = None) -> FileRecords:
stream = Stream.from_file(file_path)
decoder = Decoder(stream)
messages, _errors = decoder.read()
records = messages["record_mesgs"]
heart_rate_records: list[HeartRateRecord] = [
HeartRateRecord(record["timestamp"], record["heart_rate"])
for record in records if record["heart_rate"] != None
]
return FileRecords(friendly_name if friendly_name != None else file_path,
heart_rate_records)