refactor(agent/gemini,acp,credits): shared part classifiers, folded literals, table-driven account seed
This commit is contained in:
@@ -391,16 +391,15 @@ def _credits_state_from_account(info) -> Optional[CreditsState]:
|
||||
|
||||
def _money(dollars) -> tuple[int, str]: # (micros, display usd); (0, "") when absent
|
||||
return (int(round(dollars * 1_000_000)), f"{dollars:.2f}") if isinstance(dollars, (int, float)) else (0, "")
|
||||
remaining = _money(getattr(acc, "total_usable_credits", None))
|
||||
sub_rem = _money(getattr(acc, "subscription_credits_remaining", None))
|
||||
purchased = _money(getattr(acc, "purchased_credits_remaining", None))
|
||||
fields: dict[str, Any] = {}
|
||||
for prefix, obj, attr in (("remaining", acc, "total_usable_credits"), ("subscription", acc, "subscription_credits_remaining"),
|
||||
("purchased", acc, "purchased_credits_remaining")):
|
||||
fields[f"{prefix}_micros"], fields[f"{prefix}_usd"] = _money(getattr(obj, attr, None))
|
||||
monthly = getattr(sub, "monthly_credits", None)
|
||||
cap = _money(monthly) if isinstance(monthly, (int, float)) and monthly > 0 else (None, None)
|
||||
paid = getattr(info, "paid_service_access", None)
|
||||
return CreditsState(
|
||||
remaining_micros=remaining[0], remaining_usd=remaining[1], subscription_micros=sub_rem[0],
|
||||
subscription_usd=sub_rem[1], subscription_limit_micros=cap[0], subscription_limit_usd=cap[1],
|
||||
purchased_micros=purchased[0], purchased_usd=purchased[1],
|
||||
**fields, subscription_limit_micros=cap[0], subscription_limit_usd=cap[1],
|
||||
rollover_micros=_money(getattr(sub, "rollover_credits", None))[0],
|
||||
denominator_kind="subscription_cap" if cap[0] is not None else "none",
|
||||
paid_access=paid if isinstance(paid, bool) else True, from_header=False, captured_at=time.time(),
|
||||
|
||||
Reference in New Issue
Block a user