разбор метрик HAE: фикстуры, канонизация, парсер
- tmp/research/fixtures.py собирает фикстуры из архива, вычищая измерения и сохраняя порядок ключей, форму литералов, выравнивание меток и невидимые символы; шесть фикстур в internal/hae/testdata - internal/canon — общий дом канонической формы, полноты и хеша: числа читаются литералом через json.Number, округление до 12 значащих цифр - internal/hae — разбор секции metrics, вывод слоя по метрике, разделение схем сна, координаты интервалом; recover внутри Parse, фаззинг - миграция bucket и docs/database.md
This commit is contained in:
+78
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"data": {
|
||||
"metrics": [
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"qty": 0.48052029446490479,
|
||||
"value": "Во сне",
|
||||
"source": "Device A",
|
||||
"start": "2025-06-05 22:04:00 +0300",
|
||||
"startDate": "2025-06-05 22:04:00 +0300",
|
||||
"endDate": "2025-06-05 22:16:00 +0300",
|
||||
"end": "2025-06-05 22:16:00 +0300",
|
||||
"date": "2025-06-05 22:04:00 +0300"
|
||||
},
|
||||
{
|
||||
"endDate": "2025-06-06 02:21:00 +0300",
|
||||
"qty": 1.5130355381745861,
|
||||
"startDate": "2025-06-05 22:04:00 +0300",
|
||||
"date": "2025-06-05 22:04:00 +0300",
|
||||
"value": "В кровати",
|
||||
"source": "Device A",
|
||||
"end": "2025-06-06 02:21:00 +0300",
|
||||
"start": "2025-06-05 22:04:00 +0300"
|
||||
},
|
||||
{
|
||||
"qty": 9.1550074802731359,
|
||||
"source": "Device A",
|
||||
"end": "2025-06-06 01:26:00 +0300",
|
||||
"value": "Во сне",
|
||||
"start": "2025-06-05 22:40:00 +0300",
|
||||
"startDate": "2025-06-05 22:40:00 +0300",
|
||||
"date": "2025-06-05 22:40:00 +0300",
|
||||
"endDate": "2025-06-06 01:26:00 +0300"
|
||||
},
|
||||
{
|
||||
"date": "2025-06-06 01:27:00 +0300",
|
||||
"endDate": "2025-06-06 02:21:00 +0300",
|
||||
"qty": 0.78349523542270867,
|
||||
"end": "2025-06-06 02:21:00 +0300",
|
||||
"source": "Device A",
|
||||
"value": "Во сне",
|
||||
"start": "2025-06-06 01:27:00 +0300",
|
||||
"startDate": "2025-06-06 01:27:00 +0300"
|
||||
}
|
||||
],
|
||||
"units": "hr",
|
||||
"name": "sleep_analysis"
|
||||
},
|
||||
{
|
||||
"name": "heart_rate",
|
||||
"units": "count/min",
|
||||
"data": [
|
||||
{
|
||||
"context": "Не задано",
|
||||
"Max": 31,
|
||||
"date": "2025-06-06 03:00:36 +0300",
|
||||
"start": "2025-06-06 03:00:36 +0300",
|
||||
"Avg": 31,
|
||||
"source": "Device A ",
|
||||
"Min": 31,
|
||||
"end": "2025-06-06 03:00:36 +0300"
|
||||
},
|
||||
{
|
||||
"Min": 12,
|
||||
"source": "Device A ",
|
||||
"start": "2025-06-06 03:04:20 +0300",
|
||||
"date": "2025-06-06 03:04:20 +0300",
|
||||
"Max": 12,
|
||||
"Avg": 12,
|
||||
"context": "Не задано",
|
||||
"end": "2025-06-06 03:04:20 +0300"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user