yeref 0.24.74__py3-none-any.whl → 0.24.75__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
yeref/yeref.py CHANGED
@@ -16496,39 +16496,35 @@ async def return_retention_metrics(bot, PROJECT_USERNAME, EXTRA_D, BASE_P):
16496
16496
  if not cohort_months:
16497
16497
  return
16498
16498
 
16499
- def add_months(mo_str, n):
16500
- y, m = map(int, mo_str.split("-"))
16501
- total = m + n
16502
- new_y = y + (total - 1) // 12
16503
- new_m = (total - 1) % 12 + 1
16504
- return f"{new_y:04d}-{new_m:02d}"
16505
-
16506
- num_cohorts = len(cohort_months)
16507
- first_cohort = cohort_months[0]
16499
+ # вычисляем максимальный offset (M-1)
16500
+ max_offset = 0
16501
+ for c in cohort_months:
16502
+ if rev_by_cohort[c]:
16503
+ max_offset = max(max_offset, max(rev_by_cohort[c].keys()))
16508
16504
 
16509
16505
  path = os.path.join(EXTRA_D, "4_retention_metrics.csv")
16510
16506
  with open(path, "w", newline="", encoding="utf-8") as f:
16511
16507
  writer = csv.writer(f)
16508
+
16509
+ # заголовок
16512
16510
  header = ["Месяц/Когорта"] + [
16513
- f"{c} ({len(cohort_users[c])})" for c in cohort_months
16511
+ f"{c} ({len(cohort_users[c])})"
16512
+ for c in cohort_months
16514
16513
  ] + ["∑"]
16515
16514
  writer.writerow(header)
16516
16515
 
16517
- for i in range(num_cohorts):
16518
- calendar_mo = add_months(first_cohort, i)
16516
+ # строки M1..M{max_offset+1} по offset
16517
+ for i in range(max_offset + 1):
16519
16518
  row = [f"M{i+1}"]
16520
16519
  row_sum = 0.0
16521
16520
  for c in cohort_months:
16522
- y0, m0 = map(int, c.split("-"))
16523
- y1, m1 = map(int, calendar_mo.split("-"))
16524
- offset = (y1 - y0) * 12 + (m1 - m0)
16525
- if offset < 0:
16526
- cell = "0.0"
16527
- else:
16528
- rev = rev_by_cohort[c].get(offset, 0.0)
16521
+ rev = rev_by_cohort[c].get(i, 0.0)
16522
+ if rev > 0:
16529
16523
  cell = f"{rev:.1f}"
16524
+ row.append(cell)
16530
16525
  row_sum += rev
16531
- row.append(cell)
16526
+ else:
16527
+ row.append("")
16532
16528
  row.append(f"{row_sum:.1f}")
16533
16529
  writer.writerow(row)
16534
16530
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yeref
3
- Version: 0.24.74
3
+ Version: 0.24.75
4
4
  Summary: desc-f
5
5
  Author: john smith
6
6
  Dynamic: author
@@ -0,0 +1,8 @@
1
+ yeref/__init__.py,sha256=Qpv3o6Xa78VdLcsSRmctGtpnYE9btpAkCekgGhgJyXM,49
2
+ yeref/l_.py,sha256=LMX_olmJwq-tgoALJCnhV_fGrL_i_43yBLkLIcEVqGo,1176743
3
+ yeref/tonweb.js,sha256=Jf6aFOQ1OIY4q7fINYz-m5LsI3seMus124M5SYYZmtE,443659
4
+ yeref/yeref.py,sha256=kvDM8DViQJMT3WPDYBw2loFt1twrnA1Tec86WSuIplE,1053319
5
+ yeref-0.24.75.dist-info/METADATA,sha256=UJirxHsM6wl6rsp_aFHQBpf0JYb8wLO6OZWfy7jqzto,119
6
+ yeref-0.24.75.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
+ yeref-0.24.75.dist-info/top_level.txt,sha256=yCQKchWHbfV-3OuQPYRdi2loypD-nmbDJbtt3OuKKkY,6
8
+ yeref-0.24.75.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- yeref/__init__.py,sha256=Qpv3o6Xa78VdLcsSRmctGtpnYE9btpAkCekgGhgJyXM,49
2
- yeref/l_.py,sha256=LMX_olmJwq-tgoALJCnhV_fGrL_i_43yBLkLIcEVqGo,1176743
3
- yeref/tonweb.js,sha256=Jf6aFOQ1OIY4q7fINYz-m5LsI3seMus124M5SYYZmtE,443659
4
- yeref/yeref.py,sha256=sOW0lT4-nwnMOmfix4918ek-_7jsv4yBJ4vbZzGX7eE,1053530
5
- yeref-0.24.74.dist-info/METADATA,sha256=3wkPOhoE-zNSpttadDOz_UtFgqYe010slfhJ6iUbWCg,119
6
- yeref-0.24.74.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
7
- yeref-0.24.74.dist-info/top_level.txt,sha256=yCQKchWHbfV-3OuQPYRdi2loypD-nmbDJbtt3OuKKkY,6
8
- yeref-0.24.74.dist-info/RECORD,,