From 3820b40f44bbb097d891fe90cf6cf7a54f9f8cc8 Mon Sep 17 00:00:00 2001 From: b-rowan Date: Sun, 21 Jan 2024 14:39:01 -0700 Subject: [PATCH] bug: Fix DataLocations defaulting to all `get_config`. --- pyasic/miners/backends/avalonminer.py | 4 ++++ pyasic/miners/backends/vnish.py | 4 ++++ pyasic/miners/base.py | 6 +++++- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pyasic/miners/backends/avalonminer.py b/pyasic/miners/backends/avalonminer.py index fa0237c4..ecfea159 100644 --- a/pyasic/miners/backends/avalonminer.py +++ b/pyasic/miners/backends/avalonminer.py @@ -64,6 +64,10 @@ AVALON_DATA_LOC = DataLocations( "_get_fault_light", [RPCAPICommand("api_stats", "stats")], ), + str(DataOptions.UPTIME): DataFunction( + "_get_uptime", + [RPCAPICommand("api_stats", "stats")], + ), } ) diff --git a/pyasic/miners/backends/vnish.py b/pyasic/miners/backends/vnish.py index 6372594e..0e867388 100644 --- a/pyasic/miners/backends/vnish.py +++ b/pyasic/miners/backends/vnish.py @@ -70,6 +70,10 @@ VNISH_DATA_LOC = DataLocations( "_get_fans", [RPCAPICommand("api_stats", "stats")], ), + str(DataOptions.UPTIME): DataFunction( + "_get_uptime", + [RPCAPICommand("api_stats", "stats")], + ), } ) diff --git a/pyasic/miners/base.py b/pyasic/miners/base.py index cd8e7075..8bfbb44d 100644 --- a/pyasic/miners/base.py +++ b/pyasic/miners/base.py @@ -89,6 +89,9 @@ class DataFunction: Union[RPCAPICommand, WebAPICommand, GRPCCommand, GraphQLCommand] ] = field(default_factory=list) + def __call__(self, *args, **kwargs): + return self + DataLocations = make_dataclass( "DataLocations", @@ -96,11 +99,12 @@ DataLocations = make_dataclass( ( enum_value.value, DataFunction, - field(default_factory=lambda: DataFunction(enum_value.default_command())), + field(default_factory=DataFunction(enum_value.default_command())), ) for enum_value in DataOptions ], ) +print(DataLocations()) class MinerProtocol(Protocol):