* feature: handle all hashrate algorithm conversions for antminers
* feature: handle all hashrate algorithm conversions for auradine
* feature: handle all hashrate algorithm conversions for avalonminers
* feature: handle all hashrate algorithm conversions for bitaxe
* feature: handle all hashrate algorithm conversions for epic
* feature: handle all hashrate algorithm conversions for goldshell
* refactor: clean up imports
* feature: handle all hashrate algorithm conversions for hammer
* feature: handle all hashrate algorithm conversions for iceriver
* feature: handle all hashrate algorithm conversions for innosilicon
* feature: handle all hashrate algorithm conversions for whatsminer
* tests: update tests to check if miners have board, fan, and algo values
* feature: finish updating all miners with boards, fans, and algos
* feature: update algorithm default values
* feature: add algorithm hashrate values
* feature: improve hashrate types, and use `self.algo` inside miners
---------
Co-authored-by: Upstream Data <brett@upstreamdata.ca>
* feature: switch almost everything to pydantic BaseModel
* feature: swap more dataclasses over to pydantic models
* feature: use more model serializers to make data handle better
* bug: fix some serialization issues with `None` values
* bug: fix some initialization problems with miner mode config
* bug: fix new BOS+ pool parsing
* bug: fix new BOS+ board temperature parsing serialization error
* bug: more misc fixes with serialization, extra methods, and hashrate types
* bug: add explicit type conversions to hashrate types
* bug: fix epic pool URL parsing
* bug: fix positional args in hashboards
* bug: fix epic missing url scheme
* convert board temp to int
---------
Co-authored-by: Upstream Data <brett@upstreamdata.ca>
Co-authored-by: John-Paul Compagnone <jpcompagnone@epicblockchain.io>
* feature: add config to MinerData. Remove related attributes.
* feature: rename ideal and nominal to expected to make data naming consistent across files.
* refactor: run isort on all files.
* docs: update docstrings.
* use `None` instead of `-1` for temps and wattages
this way it's easier for other tools like HomeAssistant to understand if the temperature is really negative or not available
* also handle cases where we look for `-1`
* changed over to package format and removed tools, added poetry
* reformat into miner_interface project
* add dist to .gitignore
* update readme and finish reformatting
* Added couple missing imports. (#13)
* change name to pyasic
Co-authored-by: upstreamdata <brett@upstreamdata.ca>
Co-authored-by: Mika Impola <mika@impola.fi>