feature: add fields classmethod to all dataclasses to show what the fields are in each class.

This commit is contained in:
UpstreamData
2022-11-07 12:53:01 -07:00
parent 215af72a6b
commit c7847d2789
5 changed files with 38 additions and 5 deletions

View File

@@ -12,7 +12,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from dataclasses import dataclass, asdict
from dataclasses import dataclass, asdict, fields
from typing import Literal, List
import random
import string
@@ -37,6 +37,10 @@ class _Pool:
username: str = ""
password: str = ""
@classmethod
def fields(cls):
return fields(cls)
def from_dict(self, data: dict):
"""Convert raw pool data as a dict to usable data and save it to this class.
@@ -136,6 +140,10 @@ class _PoolGroup:
group_name: str = None
pools: List[_Pool] = None
@classmethod
def fields(cls):
return fields(cls)
def __post_init__(self):
if not self.group_name:
self.group_name = "".join(
@@ -263,6 +271,10 @@ class MinerConfig:
dps_shutdown_enabled: bool = None
dps_shutdown_duration: float = None
@classmethod
def fields(cls):
return fields(cls)
def as_dict(self) -> dict:
"""Convert the data in this class to a dict."""
data_dict = asdict(self)