From ec88fbf6aa59e936b2b8cfee9f98e41b17510c77 Mon Sep 17 00:00:00 2001 From: SKART1 Date: Sat, 19 Apr 2025 00:58:37 +0300 Subject: [PATCH] Fix #334 efficiency calculation and add computed fields --- pyasic/data/__init__.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/pyasic/data/__init__.py b/pyasic/data/__init__.py index 493b6152..c72ee743 100644 --- a/pyasic/data/__init__.py +++ b/pyasic/data/__init__.py @@ -284,10 +284,22 @@ class MinerData(BaseModel): @computed_field # type: ignore[misc] @property def efficiency(self) -> int | None: + efficiency = self._efficiency(0) + if efficiency is None: + return None + else: + return int(efficiency) + + @computed_field # type: ignore[misc] + @property + def efficiency_fract(self) -> float | None: + self._efficiency(2) + + def _efficiency(self, ndigits: int) -> float | None: if self.hashrate is None or self.wattage is None: return None try: - return round(self.wattage / float(self.hashrate)) + return round(self.wattage / float(self.hashrate), ndigits) except ZeroDivisionError: return 0