* 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>