Skip to content
Snippets Groups Projects

Implement `Power up` part of hive power management

Merged Jakub Ziebinski requested to merge jziebinski/prepare-hp-management into develop
Compare and Show latest version
2 files
+ 31
35
Compare changes
  • Side-by-side
  • Inline
Files
2
from __future__ import annotations
from abc import abstractmethod
from typing import TYPE_CHECKING, Any
from typing import TYPE_CHECKING
from textual.containers import Horizontal
from textual.widgets import Static
@@ -18,17 +17,14 @@ if TYPE_CHECKING:
from clive.__private.core.commands.data_retrieval.hive_power_data import HivePowerData
BALANCE_CELL_CLASS: Final[str] = "shares-balance-cell"
class HpInfoTableRow(CliveDataTableRow):
"""Class created to not override the `provider` property five times, but only once."""
BALANCE_CELL_CLASS: Final[str] = "shares-balance-cell"
def __init__(self, title: str, classes: str | None):
super().__init__(
title,
Static("loading...", classes=BALANCE_CELL_CLASS),
Static("loading...", classes=BALANCE_CELL_CLASS),
Static("loading...", classes=self.BALANCE_CELL_CLASS),
Static("loading...", classes=self.BALANCE_CELL_CLASS),
dynamic=True,
classes=classes,
)
@@ -37,17 +33,6 @@ class HpInfoTableRow(CliveDataTableRow):
def provider(self) -> HivePowerDataProvider:
return self.app.query_one(HivePowerDataProvider)
def sync_cells(self, content: HivePowerData) -> None:
self._update_balance_row(self.cells, self.get_new_values(content))
def _update_balance_row(self, cells: tuple[Static, ...], pretty_balances: tuple[str, str]) -> None:
for cell, balance in zip(cells, pretty_balances, strict=True):
cell.update(balance)
@abstractmethod
def get_new_values(self, content: HivePowerData) -> tuple[str, str]:
"""Should return the appropriate balance of HP and VESTS with sign prefix."""
class HpInfoTableHeader(Horizontal):
def compose(self) -> ComposeResult:
@@ -63,7 +48,7 @@ class HpInfoTableOwnedRow(HpInfoTableRow):
classes="odd-row",
)
def get_new_values(self, content: Any) -> tuple[str, str]:
def get_new_values(self, content: HivePowerData) -> tuple[str, ...]:
hp_balance = humanize_asset(content.owned_balance.hp_balance, show_symbol=False)
vests_balance = humanize_asset(content.owned_balance.vests_balance, show_symbol=False)
@@ -77,7 +62,7 @@ class HpInfoTableReceivedRow(HpInfoTableRow):
classes="even-row",
)
def get_new_values(self, content: Any) -> tuple[str, str]:
def get_new_values(self, content: HivePowerData) -> tuple[str, ...]:
hp_balance = humanize_asset(content.received_balance.hp_balance, show_symbol=False, sign_prefix="+")
vests_balance = humanize_asset(content.received_balance.vests_balance, show_symbol=False, sign_prefix="+")
@@ -91,7 +76,7 @@ class HpInfoTableDelegatedRow(HpInfoTableRow):
classes="odd-row",
)
def get_new_values(self, content: Any) -> tuple[str, str]:
def get_new_values(self, content: HivePowerData) -> tuple[str, ...]:
hp_balance = humanize_asset(content.delegated_balance.hp_balance, show_symbol=False, sign_prefix="-")
vests_balance = humanize_asset(content.delegated_balance.vests_balance, show_symbol=False, sign_prefix="-")
@@ -105,7 +90,7 @@ class HpInfoTablePowerDownRow(HpInfoTableRow):
classes="even-row",
)
def get_new_values(self, content: Any) -> tuple[str, str]:
def get_new_values(self, content: HivePowerData) -> tuple[str, ...]:
hp_balance = humanize_asset(content.next_power_down.hp_balance, show_symbol=False, sign_prefix="-")
vests_balance = humanize_asset(content.next_power_down.vests_balance, show_symbol=False, sign_prefix="-")
@@ -119,7 +104,7 @@ class HpInfoTableEffectiveRow(HpInfoTableRow):
classes="odd-row",
)
def get_new_values(self, content: Any) -> tuple[str, str]:
def get_new_values(self, content: HivePowerData) -> tuple[str, ...]:
hp_balance = humanize_asset(content.total_balance.hp_balance, show_symbol=False)
vests_balance = humanize_asset(content.total_balance.vests_balance, show_symbol=False)
Loading