pyasic-umhost 0.3.0.dev2__tar.gz → 0.3.0.dev3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pyasic_umhost-0.3.0.dev3/PKG-INFO +296 -0
- pyasic_umhost-0.3.0.dev3/README.md +261 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/btminer.py +57 -6
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyproject.toml +1 -1
- pyasic_umhost-0.3.0.dev2/PKG-INFO +0 -328
- pyasic_umhost-0.3.0.dev2/README.md +0 -293
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/LICENSE.txt +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/MinerData.md +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/fans.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/frequency.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/algo.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/presets.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/scaling.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/pools.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/config/temperature.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/boards.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/device.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/X19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/bos.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/innosilicon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/vnish.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/whatsminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/fans.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/data/pools.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/blake256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/blockflow.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/eaglesong.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/equihash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/ethash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/handshake.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/blake256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/blockflow.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/eaglesong.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/equihash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/ethash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/handshake.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/kadena.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/kheavyhash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/scrypt.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/sha256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/blake256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/blockflow.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/eaglesong.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/equihash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/ethash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/handshake.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/kadena.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/kheavyhash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/scrypt.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/sha256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/x11.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/zksnark.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/x11.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/zksnark.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/kadena.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/kheavyhash.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/scrypt.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/sha256.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/x11.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/zksnark.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/firmware.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/makes.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/device/models.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/errors/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/load/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/logger/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X15/Z15.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X15/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/S17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/T17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/HS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/KA3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/KS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/L3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X5/KS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X5/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/D7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/K7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/L7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/D9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/E9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/L9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/S9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/T9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/S17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/T17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X9/S9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X15/Z15.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X15/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X3/D3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X3/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X5/DR5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X5/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X9/T9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X9/S9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X17/S17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X17/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X3/L3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X3/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X7/L7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X7/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X9/L9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/AT1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/AT2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/AI2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/AI3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/AD2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/AD3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1026.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1047.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1066.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/A1126.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/A1166.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A12X/A1246.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A12X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/A1326.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/A1346.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A15X/A1566.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A15X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A721.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A741.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A761.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A821.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A841.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A851.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A9X/A921.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A9X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/Q/Q.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/Q/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/mini/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/mini/mini3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/nano/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/nano/nano3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/antminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/auradine.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/avalonminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bfgminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bitaxe.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bmminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/braiins_os.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/cgminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/elphapex.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/epic.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/espminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/fluminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/goldshell.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/hammer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/hiveon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/iceriver.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/innosilicon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/luckyminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/luxminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/marathon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/mskminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/unknown.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/vnish.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/whatsminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1366.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1368.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1370.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1397.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/blockminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/blockminer/blockminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/BMM/BMM.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/BMM/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/data.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/firmware.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/makes.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X15/Z15.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X15/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/S17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/T17.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/S19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/T19.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/S21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/T21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/D3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/HS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/KA3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/KS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/L3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/DR5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/KS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/D7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/K7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/L7.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/D9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/E9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/L9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/S9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/T9.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/AD2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/AD3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/AI2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/AI3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/AT1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/AT2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1026.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1047.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1066.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/A1126.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/A1166.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A12X/A1246.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A12X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/A1326.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/A1346.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A15X/A1566.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A15X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A721.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A741.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A761.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A821.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A841.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A851.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A9X/A921.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A9X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/Q/Q.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/Q/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/mini/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/mini/mini3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/nano/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/nano/nano3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1366.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1368.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1370.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1397.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/BMM/BMM1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/BMM/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/DGX/DG1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/DGX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/blockminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/blockminer/blockminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/T/T3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/T/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/CK5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/HS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/KD5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XBox/KDBox.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XBox/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XMax/KDMax.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XMax/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/byte/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/byte/byte.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/mini_doge/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/mini_doge/mini_doge.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/DX/D10.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/DX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/ALX/AL3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/ALX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS0.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A10X/A10X.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A10X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/A11.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/A11M.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/T3X/T3H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/T3X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/LV07.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/LV08.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/DX/D1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/DX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20P.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M29.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30K.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30L.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31L.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31SE.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M32.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M32S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M34S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M39.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M52S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M52S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M54S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M59.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M62S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M64.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M64S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M65S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M65S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M67S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M7X/M70.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M7X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/DGX/DG1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/DGX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/factory.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/T/T3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/T/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/CK5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/HS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/KD5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XBox/KDBox.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XBox/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XMax/KDMax.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XMax/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/byte/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/byte/byte.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/mini_doge/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/mini_doge/mini_doge.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/DX/D10.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/DX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/ALX/AL3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/ALX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS0.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS2.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS3.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS5.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A10X/A10X.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A10X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/A11.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/A11M.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/T3X/T3H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/T3X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/listener.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/LV07.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/LV08.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/DX/D1.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/DX/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20P.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M29.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30K.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30L.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31L.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31SE.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M32.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M32S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M34S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M39.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M52S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M52S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53H.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M54S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M59.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M62S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M64.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M64S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M65S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M65S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S_Plus_Plus.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M67S.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M7X/M70.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M7X/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/misc/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/network/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/antminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/avalonminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bfgminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bmminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bosminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/btminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/ccminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/cgminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/gcminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/luxminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/marathon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/unknown.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/settings/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/antminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/braiins_os.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/test.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/antminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/auradine.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/avalonminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/base.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/better_monkey.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/boser.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/bosminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/bos/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/bos/v1/__init__.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/elphapex.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/epic.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/espminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/fluminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/goldshell.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/hammer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/hiveon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/iceriver.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/innosilicon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/luckyminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/marathon.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/mskminer.py +0 -0
- {pyasic_umhost-0.3.0.dev2 → pyasic_umhost-0.3.0.dev3}/pyasic/web/vnish.py +0 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pyasic-umhost
|
|
3
|
+
Version: 0.3.0.dev3
|
|
4
|
+
Summary: Fork of pyasic — a simplified and standardized interface for Bitcoin ASICs.
|
|
5
|
+
License: Apache 2.0
|
|
6
|
+
License-File: LICENSE.txt
|
|
7
|
+
Keywords: python,asic,bitcoin,whatsminer,antminer,braiins-os,vnish,luxos
|
|
8
|
+
Author: UpstreamData
|
|
9
|
+
Author-email: brett@upstreamdata.ca
|
|
10
|
+
Requires-Python: >3.10, <4.0
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
14
|
+
Classifier: Programming Language :: Python
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Requires-Dist: aiofiles (>=23.2.1)
|
|
22
|
+
Requires-Dist: asyncssh (>=2.20.0)
|
|
23
|
+
Requires-Dist: betterproto (==2.0.0b7)
|
|
24
|
+
Requires-Dist: cryptography (>=39.0)
|
|
25
|
+
Requires-Dist: httpx (>=0.26.0)
|
|
26
|
+
Requires-Dist: passlib (>=1.7.4)
|
|
27
|
+
Requires-Dist: playwright (>=1.40)
|
|
28
|
+
Requires-Dist: pyaml (>=23.12.0)
|
|
29
|
+
Requires-Dist: pydantic (>=2.11.0)
|
|
30
|
+
Requires-Dist: semver (>=3.0.4,<4.0.0)
|
|
31
|
+
Requires-Dist: tomli (>=2.2.1,<3.0.0) ; python_version < "3.11"
|
|
32
|
+
Requires-Dist: tomli-w (>=1.0.0)
|
|
33
|
+
Description-Content-Type: text/markdown
|
|
34
|
+
|
|
35
|
+
# pyasic-umhost
|
|
36
|
+
|
|
37
|
+
*Упрощённый и стандартизированный интерфейс для управления Bitcoin ASIC-майнерами.*
|
|
38
|
+
|
|
39
|
+
Форк [pyasic](https://github.com/UpstreamData/pyasic) — асинхронная Python-библиотека для обнаружения, опроса и управления ASIC-майнерами (Antminer, Whatsminer, Avalon, Braiins OS, VNish, LuxOS, Goldshell, Auradine, Innosilicon, ePIC, Hiveon, BitAxe, Iceriver, Volcminer и др.).
|
|
40
|
+
|
|
41
|
+
Форк добавляет:
|
|
42
|
+
- **`app.py`** — Streamlit-интерфейс поверх библиотеки.
|
|
43
|
+
- **`inspector/`** — инструмент для сбора полного отчёта по майнеру.
|
|
44
|
+
|
|
45
|
+
Python `>3.10, <4.0`. Лицензия Apache-2.0.
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## Установка
|
|
50
|
+
|
|
51
|
+
Дистрибутив называется `pyasic-umhost`, но импортируется как `pyasic`:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pip install pyasic-umhost
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```python
|
|
58
|
+
import pyasic
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Установка для разработки
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
poetry install --with dev # добавьте ,docs для зависимостей mkdocs
|
|
65
|
+
pre-commit install
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Запуск Streamlit-интерфейса
|
|
69
|
+
|
|
70
|
+
Streamlit **не** объявлен в зависимостях `pyproject.toml` — установите его отдельно:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install streamlit
|
|
74
|
+
streamlit run app.py
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Быстрый старт
|
|
80
|
+
|
|
81
|
+
### Поиск майнеров в сети
|
|
82
|
+
|
|
83
|
+
`MinerNetwork` сканирует подсеть и возвращает список найденных майнеров с уже определённым типом.
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
import asyncio
|
|
87
|
+
from pyasic.network import MinerNetwork
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
async def scan_miners():
|
|
91
|
+
# любой IP трактуется как подсеть /24 (255 адресов)
|
|
92
|
+
network = MinerNetwork.from_subnet("192.168.1.50/24") # сеть 192.168.1.0-255
|
|
93
|
+
miners = await network.scan()
|
|
94
|
+
print(miners)
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
if __name__ == "__main__":
|
|
98
|
+
asyncio.run(scan_miners())
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Подключение по известному IP
|
|
102
|
+
|
|
103
|
+
Если IP уже известен, используйте `get_miner()` — он определит модель майнера или вернёт `UnknownMiner`.
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
import asyncio
|
|
107
|
+
from pyasic import get_miner
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
async def get_miners():
|
|
111
|
+
# быстрее опрашивать несколько майнеров параллельно через asyncio.gather
|
|
112
|
+
tasks = [get_miner("192.168.1.75"), get_miner("192.168.1.76")]
|
|
113
|
+
miners = await asyncio.gather(*tasks)
|
|
114
|
+
print(miners)
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
if __name__ == "__main__":
|
|
118
|
+
asyncio.run(get_miners())
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Получение данных
|
|
124
|
+
|
|
125
|
+
`get_data()` возвращает экземпляр `MinerData` со всеми данными, которые удалось собрать. Любое поле доступно как атрибут, например `MinerData().hashrate`.
|
|
126
|
+
|
|
127
|
+
```python
|
|
128
|
+
import asyncio
|
|
129
|
+
from pyasic import get_miner
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
async def gather_miner_data():
|
|
133
|
+
miner = await get_miner("192.168.1.75")
|
|
134
|
+
if miner is not None:
|
|
135
|
+
data = await miner.get_data()
|
|
136
|
+
print(data) # весь датакласс
|
|
137
|
+
print(data.hashrate) # хешрейт в TH/s
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
if __name__ == "__main__":
|
|
141
|
+
asyncio.run(gather_miner_data())
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
Для нескольких майнеров запускайте `get_data()` параллельно:
|
|
145
|
+
|
|
146
|
+
```python
|
|
147
|
+
all_data = await asyncio.gather(*[m.get_data() for m in miners])
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Экземпляры `MinerData` можно складывать и делить на число — удобно для усреднённых данных по парку:
|
|
151
|
+
|
|
152
|
+
```python
|
|
153
|
+
from pyasic import MinerData
|
|
154
|
+
|
|
155
|
+
data = [MinerData("192.168.1.1"), MinerData("192.168.1.2")]
|
|
156
|
+
average = sum(data, start=MinerData("0.0.0.0")) / len(data)
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## Управление майнером
|
|
162
|
+
|
|
163
|
+
Каждый класс майнера реализует единый набор управляющих методов из `BaseMiner`:
|
|
164
|
+
`check_light`, `fault_light_on`, `fault_light_off`, `get_config`, `get_data`, `get_errors`,
|
|
165
|
+
`get_hostname`, `get_model`, `reboot`, `restart_backend`, `stop_mining`, `resume_mining`,
|
|
166
|
+
`is_mining`, `send_config`, `set_power_limit`.
|
|
167
|
+
|
|
168
|
+
```python
|
|
169
|
+
import asyncio
|
|
170
|
+
from pyasic import get_miner
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
async def control():
|
|
174
|
+
miner = await get_miner("192.168.1.20")
|
|
175
|
+
|
|
176
|
+
# включить сигнальный диод
|
|
177
|
+
await miner.fault_light_on()
|
|
178
|
+
|
|
179
|
+
# прочитать и записать конфиг
|
|
180
|
+
cfg = await miner.get_config()
|
|
181
|
+
await miner.send_config(cfg)
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
if __name__ == "__main__":
|
|
185
|
+
asyncio.run(control())
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
`MinerConfig` — это унифицированное представление конфигурации майнера (возврат `get_config()`).
|
|
189
|
+
`send_config()` сам конвертирует его в нужный для конкретного майнера формат.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## Настройки
|
|
194
|
+
|
|
195
|
+
Глобальные настройки (`pyasic.settings`) упрощают работу с большими парками — например, общий пароль по умолчанию:
|
|
196
|
+
|
|
197
|
+
```python
|
|
198
|
+
from pyasic import settings
|
|
199
|
+
|
|
200
|
+
settings.update("default_antminer_web_password", "my_pwd")
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
Значения по умолчанию:
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
"network_ping_retries": 1,
|
|
207
|
+
"network_ping_timeout": 3,
|
|
208
|
+
"network_scan_semaphore": None,
|
|
209
|
+
"factory_get_retries": 1,
|
|
210
|
+
"factory_get_timeout": 3,
|
|
211
|
+
"get_data_retries": 1,
|
|
212
|
+
"api_function_timeout": 5,
|
|
213
|
+
"antminer_mining_mode_as_str": False,
|
|
214
|
+
"default_whatsminer_rpc_password": "admin",
|
|
215
|
+
"default_innosilicon_web_password": "admin",
|
|
216
|
+
"default_antminer_web_password": "root",
|
|
217
|
+
"default_bosminer_web_password": "root",
|
|
218
|
+
"default_vnish_web_password": "admin",
|
|
219
|
+
"default_goldshell_web_password": "123456789",
|
|
220
|
+
"default_auradine_web_password": "admin",
|
|
221
|
+
"default_epic_web_password": "letmein",
|
|
222
|
+
"default_hive_web_password": "admin",
|
|
223
|
+
"default_antminer_ssh_password": "miner",
|
|
224
|
+
"default_bosminer_ssh_password": "root",
|
|
225
|
+
|
|
226
|
+
# РАСШИРЕННЫЕ — меняйте только если понимаете, что делаете
|
|
227
|
+
"socket_linger_time": 1000,
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## Тесты
|
|
233
|
+
|
|
234
|
+
Тесты на стандартном `unittest` (не pytest):
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
python -m unittest discover -p '*test.py' # весь набор
|
|
238
|
+
ruff check --fix && ruff format # линт и форматирование
|
|
239
|
+
mypy # проверка типов
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## Сборка и публикация на PyPI
|
|
245
|
+
|
|
246
|
+
Сборка и публикация идут через Poetry. Бэкенд сборки — `poetry-core`.
|
|
247
|
+
|
|
248
|
+
### 1. Поднять версию
|
|
249
|
+
|
|
250
|
+
PyPI **не даёт перезалить уже существующую версию**, поэтому перед каждым релизом меняйте `version`
|
|
251
|
+
в `[project]` файла `pyproject.toml` (например `0.3.0.dev2` → `0.3.0.dev3` или `0.3.0`).
|
|
252
|
+
|
|
253
|
+
> Версии вида `0.3.0.devN` — это пре-релизы: `pip install pyasic-umhost` их по умолчанию **не ставит**,
|
|
254
|
+
> нужен `pip install --pre pyasic-umhost`. Для обычного релиза используйте чистую версию без `.devN`.
|
|
255
|
+
|
|
256
|
+
### 2. Настроить токен (один раз)
|
|
257
|
+
|
|
258
|
+
Получите API-токен на https://pypi.org/manage/account/token/ и сохраните его:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
poetry config pypi-token.pypi pypi-AgEIcHl...ваш_токен
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### 3. Собрать и опубликовать
|
|
265
|
+
|
|
266
|
+
```bash
|
|
267
|
+
rm -rf dist/ # на всякий случай чистим старые сборки
|
|
268
|
+
poetry build # создаст dist/*.whl и dist/*.tar.gz
|
|
269
|
+
poetry publish # зальёт на PyPI
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
Или одной командой:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
poetry publish --build
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### Проверка на TestPyPI (необязательно)
|
|
279
|
+
|
|
280
|
+
Чтобы прогнать релиз без риска для боевого PyPI:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
poetry config repositories.testpypi https://test.pypi.org/legacy/
|
|
284
|
+
poetry config pypi-token.testpypi pypi-<test-токен>
|
|
285
|
+
poetry publish --build -r testpypi
|
|
286
|
+
|
|
287
|
+
pip install --pre -i https://test.pypi.org/simple/ pyasic-umhost
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
> **Если `poetry` падает с `Library not loaded: .../Python.framework/...`** — это значит, что Homebrew
|
|
291
|
+
> обновил Python и venv самого Poetry сломался. Переустановите Poetry:
|
|
292
|
+
> ```bash
|
|
293
|
+
> rm -rf "$HOME/Library/Application Support/pypoetry"
|
|
294
|
+
> curl -sSL https://install.python-poetry.org | python3 -
|
|
295
|
+
> ```
|
|
296
|
+
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# pyasic-umhost
|
|
2
|
+
|
|
3
|
+
*Упрощённый и стандартизированный интерфейс для управления Bitcoin ASIC-майнерами.*
|
|
4
|
+
|
|
5
|
+
Форк [pyasic](https://github.com/UpstreamData/pyasic) — асинхронная Python-библиотека для обнаружения, опроса и управления ASIC-майнерами (Antminer, Whatsminer, Avalon, Braiins OS, VNish, LuxOS, Goldshell, Auradine, Innosilicon, ePIC, Hiveon, BitAxe, Iceriver, Volcminer и др.).
|
|
6
|
+
|
|
7
|
+
Форк добавляет:
|
|
8
|
+
- **`app.py`** — Streamlit-интерфейс поверх библиотеки.
|
|
9
|
+
- **`inspector/`** — инструмент для сбора полного отчёта по майнеру.
|
|
10
|
+
|
|
11
|
+
Python `>3.10, <4.0`. Лицензия Apache-2.0.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Установка
|
|
16
|
+
|
|
17
|
+
Дистрибутив называется `pyasic-umhost`, но импортируется как `pyasic`:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pip install pyasic-umhost
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
import pyasic
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Установка для разработки
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
poetry install --with dev # добавьте ,docs для зависимостей mkdocs
|
|
31
|
+
pre-commit install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Запуск Streamlit-интерфейса
|
|
35
|
+
|
|
36
|
+
Streamlit **не** объявлен в зависимостях `pyproject.toml` — установите его отдельно:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install streamlit
|
|
40
|
+
streamlit run app.py
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Быстрый старт
|
|
46
|
+
|
|
47
|
+
### Поиск майнеров в сети
|
|
48
|
+
|
|
49
|
+
`MinerNetwork` сканирует подсеть и возвращает список найденных майнеров с уже определённым типом.
|
|
50
|
+
|
|
51
|
+
```python
|
|
52
|
+
import asyncio
|
|
53
|
+
from pyasic.network import MinerNetwork
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
async def scan_miners():
|
|
57
|
+
# любой IP трактуется как подсеть /24 (255 адресов)
|
|
58
|
+
network = MinerNetwork.from_subnet("192.168.1.50/24") # сеть 192.168.1.0-255
|
|
59
|
+
miners = await network.scan()
|
|
60
|
+
print(miners)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
if __name__ == "__main__":
|
|
64
|
+
asyncio.run(scan_miners())
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Подключение по известному IP
|
|
68
|
+
|
|
69
|
+
Если IP уже известен, используйте `get_miner()` — он определит модель майнера или вернёт `UnknownMiner`.
|
|
70
|
+
|
|
71
|
+
```python
|
|
72
|
+
import asyncio
|
|
73
|
+
from pyasic import get_miner
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
async def get_miners():
|
|
77
|
+
# быстрее опрашивать несколько майнеров параллельно через asyncio.gather
|
|
78
|
+
tasks = [get_miner("192.168.1.75"), get_miner("192.168.1.76")]
|
|
79
|
+
miners = await asyncio.gather(*tasks)
|
|
80
|
+
print(miners)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
if __name__ == "__main__":
|
|
84
|
+
asyncio.run(get_miners())
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Получение данных
|
|
90
|
+
|
|
91
|
+
`get_data()` возвращает экземпляр `MinerData` со всеми данными, которые удалось собрать. Любое поле доступно как атрибут, например `MinerData().hashrate`.
|
|
92
|
+
|
|
93
|
+
```python
|
|
94
|
+
import asyncio
|
|
95
|
+
from pyasic import get_miner
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
async def gather_miner_data():
|
|
99
|
+
miner = await get_miner("192.168.1.75")
|
|
100
|
+
if miner is not None:
|
|
101
|
+
data = await miner.get_data()
|
|
102
|
+
print(data) # весь датакласс
|
|
103
|
+
print(data.hashrate) # хешрейт в TH/s
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
if __name__ == "__main__":
|
|
107
|
+
asyncio.run(gather_miner_data())
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Для нескольких майнеров запускайте `get_data()` параллельно:
|
|
111
|
+
|
|
112
|
+
```python
|
|
113
|
+
all_data = await asyncio.gather(*[m.get_data() for m in miners])
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Экземпляры `MinerData` можно складывать и делить на число — удобно для усреднённых данных по парку:
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from pyasic import MinerData
|
|
120
|
+
|
|
121
|
+
data = [MinerData("192.168.1.1"), MinerData("192.168.1.2")]
|
|
122
|
+
average = sum(data, start=MinerData("0.0.0.0")) / len(data)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## Управление майнером
|
|
128
|
+
|
|
129
|
+
Каждый класс майнера реализует единый набор управляющих методов из `BaseMiner`:
|
|
130
|
+
`check_light`, `fault_light_on`, `fault_light_off`, `get_config`, `get_data`, `get_errors`,
|
|
131
|
+
`get_hostname`, `get_model`, `reboot`, `restart_backend`, `stop_mining`, `resume_mining`,
|
|
132
|
+
`is_mining`, `send_config`, `set_power_limit`.
|
|
133
|
+
|
|
134
|
+
```python
|
|
135
|
+
import asyncio
|
|
136
|
+
from pyasic import get_miner
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
async def control():
|
|
140
|
+
miner = await get_miner("192.168.1.20")
|
|
141
|
+
|
|
142
|
+
# включить сигнальный диод
|
|
143
|
+
await miner.fault_light_on()
|
|
144
|
+
|
|
145
|
+
# прочитать и записать конфиг
|
|
146
|
+
cfg = await miner.get_config()
|
|
147
|
+
await miner.send_config(cfg)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
if __name__ == "__main__":
|
|
151
|
+
asyncio.run(control())
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
`MinerConfig` — это унифицированное представление конфигурации майнера (возврат `get_config()`).
|
|
155
|
+
`send_config()` сам конвертирует его в нужный для конкретного майнера формат.
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Настройки
|
|
160
|
+
|
|
161
|
+
Глобальные настройки (`pyasic.settings`) упрощают работу с большими парками — например, общий пароль по умолчанию:
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
from pyasic import settings
|
|
165
|
+
|
|
166
|
+
settings.update("default_antminer_web_password", "my_pwd")
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
Значения по умолчанию:
|
|
170
|
+
|
|
171
|
+
```
|
|
172
|
+
"network_ping_retries": 1,
|
|
173
|
+
"network_ping_timeout": 3,
|
|
174
|
+
"network_scan_semaphore": None,
|
|
175
|
+
"factory_get_retries": 1,
|
|
176
|
+
"factory_get_timeout": 3,
|
|
177
|
+
"get_data_retries": 1,
|
|
178
|
+
"api_function_timeout": 5,
|
|
179
|
+
"antminer_mining_mode_as_str": False,
|
|
180
|
+
"default_whatsminer_rpc_password": "admin",
|
|
181
|
+
"default_innosilicon_web_password": "admin",
|
|
182
|
+
"default_antminer_web_password": "root",
|
|
183
|
+
"default_bosminer_web_password": "root",
|
|
184
|
+
"default_vnish_web_password": "admin",
|
|
185
|
+
"default_goldshell_web_password": "123456789",
|
|
186
|
+
"default_auradine_web_password": "admin",
|
|
187
|
+
"default_epic_web_password": "letmein",
|
|
188
|
+
"default_hive_web_password": "admin",
|
|
189
|
+
"default_antminer_ssh_password": "miner",
|
|
190
|
+
"default_bosminer_ssh_password": "root",
|
|
191
|
+
|
|
192
|
+
# РАСШИРЕННЫЕ — меняйте только если понимаете, что делаете
|
|
193
|
+
"socket_linger_time": 1000,
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Тесты
|
|
199
|
+
|
|
200
|
+
Тесты на стандартном `unittest` (не pytest):
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
python -m unittest discover -p '*test.py' # весь набор
|
|
204
|
+
ruff check --fix && ruff format # линт и форматирование
|
|
205
|
+
mypy # проверка типов
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## Сборка и публикация на PyPI
|
|
211
|
+
|
|
212
|
+
Сборка и публикация идут через Poetry. Бэкенд сборки — `poetry-core`.
|
|
213
|
+
|
|
214
|
+
### 1. Поднять версию
|
|
215
|
+
|
|
216
|
+
PyPI **не даёт перезалить уже существующую версию**, поэтому перед каждым релизом меняйте `version`
|
|
217
|
+
в `[project]` файла `pyproject.toml` (например `0.3.0.dev2` → `0.3.0.dev3` или `0.3.0`).
|
|
218
|
+
|
|
219
|
+
> Версии вида `0.3.0.devN` — это пре-релизы: `pip install pyasic-umhost` их по умолчанию **не ставит**,
|
|
220
|
+
> нужен `pip install --pre pyasic-umhost`. Для обычного релиза используйте чистую версию без `.devN`.
|
|
221
|
+
|
|
222
|
+
### 2. Настроить токен (один раз)
|
|
223
|
+
|
|
224
|
+
Получите API-токен на https://pypi.org/manage/account/token/ и сохраните его:
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
poetry config pypi-token.pypi pypi-AgEIcHl...ваш_токен
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
### 3. Собрать и опубликовать
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
rm -rf dist/ # на всякий случай чистим старые сборки
|
|
234
|
+
poetry build # создаст dist/*.whl и dist/*.tar.gz
|
|
235
|
+
poetry publish # зальёт на PyPI
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Или одной командой:
|
|
239
|
+
|
|
240
|
+
```bash
|
|
241
|
+
poetry publish --build
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
### Проверка на TestPyPI (необязательно)
|
|
245
|
+
|
|
246
|
+
Чтобы прогнать релиз без риска для боевого PyPI:
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
poetry config repositories.testpypi https://test.pypi.org/legacy/
|
|
250
|
+
poetry config pypi-token.testpypi pypi-<test-токен>
|
|
251
|
+
poetry publish --build -r testpypi
|
|
252
|
+
|
|
253
|
+
pip install --pre -i https://test.pypi.org/simple/ pyasic-umhost
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
> **Если `poetry` падает с `Library not loaded: .../Python.framework/...`** — это значит, что Homebrew
|
|
257
|
+
> обновил Python и venv самого Poetry сломался. Переустановите Poetry:
|
|
258
|
+
> ```bash
|
|
259
|
+
> rm -rf "$HOME/Library/Application Support/pypoetry"
|
|
260
|
+
> curl -sSL https://install.python-poetry.org | python3 -
|
|
261
|
+
> ```
|
|
@@ -980,9 +980,13 @@ BTMINERV3_DATA_LOC = DataLocations(
|
|
|
980
980
|
"_get_env_temp",
|
|
981
981
|
[RPCAPICommand("rpc_get_miner_status_summary", "get.miner.status:summary")],
|
|
982
982
|
),
|
|
983
|
+
str(DataOptions.IS_MINING): DataFunction(
|
|
984
|
+
"_is_mining",
|
|
985
|
+
[RPCAPICommand("rpc_get_device_info", "get.device.info")],
|
|
986
|
+
),
|
|
983
987
|
str(DataOptions.IS_SLEEP): DataFunction(
|
|
984
988
|
"_is_sleep",
|
|
985
|
-
[],
|
|
989
|
+
[RPCAPICommand("rpc_get_device_info", "get.device.info")],
|
|
986
990
|
),
|
|
987
991
|
}
|
|
988
992
|
)
|
|
@@ -1458,12 +1462,59 @@ class BTMinerV3(StockFirmware):
|
|
|
1458
1462
|
.get("environment-temperature")
|
|
1459
1463
|
)
|
|
1460
1464
|
|
|
1461
|
-
|
|
1462
|
-
|
|
1465
|
+
@staticmethod
|
|
1466
|
+
def _parse_working_state(value: object) -> bool | None:
|
|
1467
|
+
"""Normalize the working state returned by BTMiner V3 firmware."""
|
|
1468
|
+
if isinstance(value, bool):
|
|
1469
|
+
return value
|
|
1470
|
+
if isinstance(value, (int, float)):
|
|
1471
|
+
if value == 1:
|
|
1472
|
+
return True
|
|
1473
|
+
if value == 0:
|
|
1474
|
+
return False
|
|
1475
|
+
return None
|
|
1476
|
+
if isinstance(value, str):
|
|
1477
|
+
normalized = value.strip().lower()
|
|
1478
|
+
if normalized in {"true", "1", "on", "yes", "running", "started"}:
|
|
1479
|
+
return True
|
|
1480
|
+
if normalized in {"false", "0", "off", "no", "stopped", "stop"}:
|
|
1481
|
+
return False
|
|
1482
|
+
return None
|
|
1463
1483
|
|
|
1464
|
-
async def
|
|
1465
|
-
|
|
1466
|
-
|
|
1484
|
+
async def _get_working_state(
|
|
1485
|
+
self, rpc_get_device_info: dict | None = None
|
|
1486
|
+
) -> bool | None:
|
|
1487
|
+
if rpc_get_device_info is None:
|
|
1488
|
+
try:
|
|
1489
|
+
rpc_get_device_info = await self.rpc.get_device_info()
|
|
1490
|
+
except APIError:
|
|
1491
|
+
return None
|
|
1492
|
+
if not isinstance(rpc_get_device_info, dict):
|
|
1493
|
+
return None
|
|
1494
|
+
msg = rpc_get_device_info.get("msg")
|
|
1495
|
+
if not isinstance(msg, dict):
|
|
1496
|
+
return None
|
|
1497
|
+
miner = msg.get("miner")
|
|
1498
|
+
if not isinstance(miner, dict):
|
|
1499
|
+
return None
|
|
1500
|
+
value = miner.get("working")
|
|
1501
|
+
return self._parse_working_state(value)
|
|
1502
|
+
|
|
1503
|
+
async def _is_mining(
|
|
1504
|
+
self, rpc_get_device_info: dict | None = None
|
|
1505
|
+
) -> bool:
|
|
1506
|
+
# `get.device.info` reports the miner service state. Returning a
|
|
1507
|
+
# hardcoded False made controllers resume already running M61 miners.
|
|
1508
|
+
state = await self._get_working_state(rpc_get_device_info)
|
|
1509
|
+
return state if state is not None else False
|
|
1510
|
+
|
|
1511
|
+
async def _is_sleep(
|
|
1512
|
+
self, rpc_get_device_info: dict | None = None
|
|
1513
|
+
) -> bool:
|
|
1514
|
+
# For BTMiner V3, sleep means a stopped miner service and is therefore
|
|
1515
|
+
# the inverse of `msg.miner.working`.
|
|
1516
|
+
state = await self._get_working_state(rpc_get_device_info)
|
|
1517
|
+
return not state if state is not None else False
|
|
1467
1518
|
|
|
1468
1519
|
async def _get_kernel_log(self) -> str | None:
|
|
1469
1520
|
"""Возвращает строку логов устройства"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "pyasic-umhost"
|
|
3
|
-
version = "0.3.0.
|
|
3
|
+
version = "0.3.0.dev3"
|
|
4
4
|
description = "Fork of pyasic — a simplified and standardized interface for Bitcoin ASICs."
|
|
5
5
|
authors = [{name = "UpstreamData", email = "brett@upstreamdata.ca"}]
|
|
6
6
|
repository = "https://github.com/UpstreamData/pyasic"
|