feat(generator): добавлена команда слепков заказов
- Зачем: - задача #92 добавляет второй источник и показывает слепок как чистую функцию зерна и дня. - Что: - добавлены окно, состояние на границе суток и канонические байты с настоящими миллисекундами. - добавлены команда snapshot, сдвиг D → D−1 и переиспользование проигранных дней. - опись дополнена хешами слепков и поведенческими тестами. - Проверка: - в generator выполнены make lint, make typecheck и make test: 427 тестов.
This commit is contained in:
1 parent
c11da3b252
commit
8e21381e13
11 files changed
+740
-46
No files matched your search
@@ -151,6 +151,10 @@ class Purchases:
|
||||
# та самая, что уехала в событие как `purchaseRevenue`. Бэкенд назовёт
|
||||
# её `items_total` — у двух источников свои имена одному числу.
|
||||
revenue: NDArray[np.int64]
|
||||
# Когда покупка подтверждена — та же абсолютная метка, что уехала в
|
||||
# событие. У заказа она станет секундой `created_at`: строка в базе
|
||||
# источника создаётся синхронно с покупкой.
|
||||
moment: NDArray[np.datetime64]
|
||||
|
||||
def __len__(self) -> int:
|
||||
return self.person_id.size
|
||||
@@ -185,6 +189,7 @@ _NO_PURCHASES = Purchases(
|
||||
quantity=(),
|
||||
coupon=(),
|
||||
revenue=np.empty(0, dtype=np.int64),
|
||||
moment=np.empty(0, dtype="datetime64[s]"),
|
||||
)
|
||||
|
||||
|
||||
@@ -666,6 +671,7 @@ def _purchases(
|
||||
quantity=tuple(draws.quantity[group] for group in bought),
|
||||
coupon=tuple(coupons[mine].tolist()),
|
||||
revenue=revenue[mine],
|
||||
moment=rows["UTCEventTime"][here],
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user