pyasic-umhost 0.3.0.dev1__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.
Files changed (651) hide show
  1. pyasic_umhost-0.3.0.dev3/PKG-INFO +296 -0
  2. pyasic_umhost-0.3.0.dev3/README.md +261 -0
  3. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/models.py +1 -0
  4. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/S21.py +4 -0
  5. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/__init__.py +1 -0
  6. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/btminer.py +57 -6
  7. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/base.py +1 -4
  8. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/S21.py +9 -0
  9. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/__init__.py +10 -1
  10. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/factory.py +3 -2
  11. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyproject.toml +1 -1
  12. pyasic_umhost-0.3.0.dev1/PKG-INFO +0 -327
  13. pyasic_umhost-0.3.0.dev1/README.md +0 -293
  14. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/LICENSE.txt +0 -0
  15. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/MinerData.md +0 -0
  16. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/__init__.py +0 -0
  17. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/__init__.py +0 -0
  18. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/base.py +0 -0
  19. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/fans.py +0 -0
  20. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/frequency.py +0 -0
  21. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/__init__.py +0 -0
  22. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/algo.py +0 -0
  23. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/presets.py +0 -0
  24. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/mining/scaling.py +0 -0
  25. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/pools.py +0 -0
  26. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/config/temperature.py +0 -0
  27. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/__init__.py +0 -0
  28. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/boards.py +0 -0
  29. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/device.py +0 -0
  30. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/X19.py +0 -0
  31. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/__init__.py +0 -0
  32. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/base.py +0 -0
  33. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/bos.py +0 -0
  34. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/innosilicon.py +0 -0
  35. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/vnish.py +0 -0
  36. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/error_codes/whatsminer.py +0 -0
  37. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/fans.py +0 -0
  38. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/data/pools.py +0 -0
  39. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/__init__.py +0 -0
  40. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/__init__.py +0 -0
  41. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/base.py +0 -0
  42. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/blake256.py +0 -0
  43. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/blockflow.py +0 -0
  44. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/eaglesong.py +0 -0
  45. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/equihash.py +0 -0
  46. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/ethash.py +0 -0
  47. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/handshake.py +0 -0
  48. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/__init__.py +0 -0
  49. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/base.py +0 -0
  50. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/blake256.py +0 -0
  51. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/blockflow.py +0 -0
  52. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/eaglesong.py +0 -0
  53. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/equihash.py +0 -0
  54. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/ethash.py +0 -0
  55. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/handshake.py +0 -0
  56. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/kadena.py +0 -0
  57. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/kheavyhash.py +0 -0
  58. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/scrypt.py +0 -0
  59. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/sha256.py +0 -0
  60. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/__init__.py +0 -0
  61. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/base.py +0 -0
  62. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/blake256.py +0 -0
  63. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/blockflow.py +0 -0
  64. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/eaglesong.py +0 -0
  65. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/equihash.py +0 -0
  66. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/ethash.py +0 -0
  67. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/handshake.py +0 -0
  68. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/kadena.py +0 -0
  69. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/kheavyhash.py +0 -0
  70. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/scrypt.py +0 -0
  71. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/sha256.py +0 -0
  72. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/x11.py +0 -0
  73. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/unit/zksnark.py +0 -0
  74. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/x11.py +0 -0
  75. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/hashrate/zksnark.py +0 -0
  76. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/kadena.py +0 -0
  77. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/kheavyhash.py +0 -0
  78. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/scrypt.py +0 -0
  79. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/sha256.py +0 -0
  80. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/x11.py +0 -0
  81. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/algorithm/zksnark.py +0 -0
  82. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/firmware.py +0 -0
  83. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/device/makes.py +0 -0
  84. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/errors/__init__.py +0 -0
  85. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/load/__init__.py +0 -0
  86. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/logger/__init__.py +0 -0
  87. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/__init__.py +0 -0
  88. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/__init__.py +0 -0
  89. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X15/Z15.py +0 -0
  90. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X15/__init__.py +0 -0
  91. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/S17.py +0 -0
  92. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/T17.py +0 -0
  93. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X17/__init__.py +0 -0
  94. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/S19.py +0 -0
  95. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/T19.py +0 -0
  96. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X19/__init__.py +0 -0
  97. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X21/T21.py +0 -0
  98. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/HS3.py +0 -0
  99. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/KA3.py +0 -0
  100. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/KS3.py +0 -0
  101. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/L3.py +0 -0
  102. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X3/__init__.py +0 -0
  103. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X5/KS5.py +0 -0
  104. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X5/__init__.py +0 -0
  105. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/D7.py +0 -0
  106. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/K7.py +0 -0
  107. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/L7.py +0 -0
  108. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X7/__init__.py +0 -0
  109. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/D9.py +0 -0
  110. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/E9.py +0 -0
  111. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/L9.py +0 -0
  112. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/S9.py +0 -0
  113. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/T9.py +0 -0
  114. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/X9/__init__.py +0 -0
  115. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bmminer/__init__.py +0 -0
  116. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/S17.py +0 -0
  117. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/T17.py +0 -0
  118. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X17/__init__.py +0 -0
  119. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/S19.py +0 -0
  120. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/T19.py +0 -0
  121. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X19/__init__.py +0 -0
  122. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/S21.py +0 -0
  123. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/T21.py +0 -0
  124. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X21/__init__.py +0 -0
  125. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X9/S9.py +0 -0
  126. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/X9/__init__.py +0 -0
  127. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/bosminer/__init__.py +0 -0
  128. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X15/Z15.py +0 -0
  129. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X15/__init__.py +0 -0
  130. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X3/D3.py +0 -0
  131. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X3/__init__.py +0 -0
  132. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X5/DR5.py +0 -0
  133. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/X5/__init__.py +0 -0
  134. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/cgminer/__init__.py +0 -0
  135. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X19/S19.py +0 -0
  136. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X19/__init__.py +0 -0
  137. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/S21.py +0 -0
  138. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/T21.py +0 -0
  139. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/X21/__init__.py +0 -0
  140. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/epic/__init__.py +0 -0
  141. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/S19.py +0 -0
  142. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/T19.py +0 -0
  143. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X19/__init__.py +0 -0
  144. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X9/T9.py +0 -0
  145. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/X9/__init__.py +0 -0
  146. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/hiveon/__init__.py +0 -0
  147. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/S19.py +0 -0
  148. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/T19.py +0 -0
  149. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X19/__init__.py +0 -0
  150. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/S21.py +0 -0
  151. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/T21.py +0 -0
  152. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X21/__init__.py +0 -0
  153. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X9/S9.py +0 -0
  154. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/X9/__init__.py +0 -0
  155. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/luxos/__init__.py +0 -0
  156. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X19/S19.py +0 -0
  157. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X19/__init__.py +0 -0
  158. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/S21.py +0 -0
  159. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/T21.py +0 -0
  160. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/X21/__init__.py +0 -0
  161. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/marathon/__init__.py +0 -0
  162. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/X19/S19.py +0 -0
  163. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/X19/__init__.py +0 -0
  164. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/mskminer/__init__.py +0 -0
  165. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X17/S17.py +0 -0
  166. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X17/__init__.py +0 -0
  167. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/S19.py +0 -0
  168. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/T19.py +0 -0
  169. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X19/__init__.py +0 -0
  170. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/S21.py +0 -0
  171. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/T21.py +0 -0
  172. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X21/__init__.py +0 -0
  173. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X3/L3.py +0 -0
  174. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X3/__init__.py +0 -0
  175. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X7/L7.py +0 -0
  176. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X7/__init__.py +0 -0
  177. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X9/L9.py +0 -0
  178. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/X9/__init__.py +0 -0
  179. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/antminer/vnish/__init__.py +0 -0
  180. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/__init__.py +0 -0
  181. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/AT1.py +0 -0
  182. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/AT2.py +0 -0
  183. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AD/__init__.py +0 -0
  184. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/AI2.py +0 -0
  185. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/AI3.py +0 -0
  186. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AI/__init__.py +0 -0
  187. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/AD2.py +0 -0
  188. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/AD3.py +0 -0
  189. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/AT/__init__.py +0 -0
  190. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/auradine/flux/__init__.py +0 -0
  191. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/__init__.py +0 -0
  192. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1026.py +0 -0
  193. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1047.py +0 -0
  194. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/A1066.py +0 -0
  195. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A10X/__init__.py +0 -0
  196. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/A1126.py +0 -0
  197. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/A1166.py +0 -0
  198. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A11X/__init__.py +0 -0
  199. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A12X/A1246.py +0 -0
  200. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A12X/__init__.py +0 -0
  201. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/A1326.py +0 -0
  202. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/A1346.py +0 -0
  203. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A13X/__init__.py +0 -0
  204. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A15X/A1566.py +0 -0
  205. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A15X/__init__.py +0 -0
  206. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A721.py +0 -0
  207. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A741.py +0 -0
  208. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/A761.py +0 -0
  209. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A7X/__init__.py +0 -0
  210. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A821.py +0 -0
  211. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A841.py +0 -0
  212. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/A851.py +0 -0
  213. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A8X/__init__.py +0 -0
  214. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A9X/A921.py +0 -0
  215. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/A9X/__init__.py +0 -0
  216. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/Q/Q.py +0 -0
  217. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/Q/__init__.py +0 -0
  218. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/__init__.py +0 -0
  219. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/mini/__init__.py +0 -0
  220. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/mini/mini3.py +0 -0
  221. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/nano/__init__.py +0 -0
  222. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/avalonminer/cgminer/nano/nano3.py +0 -0
  223. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/__init__.py +0 -0
  224. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/antminer.py +0 -0
  225. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/auradine.py +0 -0
  226. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/avalonminer.py +0 -0
  227. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bfgminer.py +0 -0
  228. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bitaxe.py +0 -0
  229. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/bmminer.py +0 -0
  230. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/braiins_os.py +0 -0
  231. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/cgminer.py +0 -0
  232. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/elphapex.py +0 -0
  233. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/epic.py +0 -0
  234. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/espminer.py +0 -0
  235. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/fluminer.py +0 -0
  236. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/goldshell.py +0 -0
  237. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/hammer.py +0 -0
  238. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/hiveon.py +0 -0
  239. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/iceriver.py +0 -0
  240. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/innosilicon.py +0 -0
  241. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/luckyminer.py +0 -0
  242. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/luxminer.py +0 -0
  243. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/marathon.py +0 -0
  244. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/mskminer.py +0 -0
  245. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/unknown.py +0 -0
  246. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/vnish.py +0 -0
  247. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/backends/whatsminer.py +0 -0
  248. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/__init__.py +0 -0
  249. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1366.py +0 -0
  250. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1368.py +0 -0
  251. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1370.py +0 -0
  252. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/BM1397.py +0 -0
  253. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/BM/__init__.py +0 -0
  254. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/bitaxe/espminer/__init__.py +0 -0
  255. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/__init__.py +0 -0
  256. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/__init__.py +0 -0
  257. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/blockminer/__init__.py +0 -0
  258. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/blockminer/epic/blockminer/blockminer.py +0 -0
  259. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/__init__.py +0 -0
  260. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/BMM/BMM.py +0 -0
  261. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/BMM/__init__.py +0 -0
  262. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/braiins/braiins/__init__.py +0 -0
  263. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/data.py +0 -0
  264. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/__init__.py +0 -0
  265. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/firmware.py +0 -0
  266. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/makes.py +0 -0
  267. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/__init__.py +0 -0
  268. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X15/Z15.py +0 -0
  269. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X15/__init__.py +0 -0
  270. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/S17.py +0 -0
  271. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/T17.py +0 -0
  272. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X17/__init__.py +0 -0
  273. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/S19.py +0 -0
  274. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/T19.py +0 -0
  275. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X19/__init__.py +0 -0
  276. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X21/T21.py +0 -0
  277. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/D3.py +0 -0
  278. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/HS3.py +0 -0
  279. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/KA3.py +0 -0
  280. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/KS3.py +0 -0
  281. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/L3.py +0 -0
  282. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X3/__init__.py +0 -0
  283. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/DR5.py +0 -0
  284. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/KS5.py +0 -0
  285. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X5/__init__.py +0 -0
  286. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/D7.py +0 -0
  287. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/K7.py +0 -0
  288. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/L7.py +0 -0
  289. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X7/__init__.py +0 -0
  290. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/D9.py +0 -0
  291. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/E9.py +0 -0
  292. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/L9.py +0 -0
  293. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/S9.py +0 -0
  294. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/T9.py +0 -0
  295. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/X9/__init__.py +0 -0
  296. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/antminer/__init__.py +0 -0
  297. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/AD2.py +0 -0
  298. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/AD3.py +0 -0
  299. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AD/__init__.py +0 -0
  300. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/AI2.py +0 -0
  301. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/AI3.py +0 -0
  302. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AI/__init__.py +0 -0
  303. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/AT1.py +0 -0
  304. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/AT2.py +0 -0
  305. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/AT/__init__.py +0 -0
  306. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/auradine/__init__.py +0 -0
  307. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1026.py +0 -0
  308. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1047.py +0 -0
  309. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/A1066.py +0 -0
  310. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A10X/__init__.py +0 -0
  311. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/A1126.py +0 -0
  312. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/A1166.py +0 -0
  313. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A11X/__init__.py +0 -0
  314. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A12X/A1246.py +0 -0
  315. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A12X/__init__.py +0 -0
  316. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/A1326.py +0 -0
  317. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/A1346.py +0 -0
  318. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A13X/__init__.py +0 -0
  319. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A15X/A1566.py +0 -0
  320. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A15X/__init__.py +0 -0
  321. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A721.py +0 -0
  322. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A741.py +0 -0
  323. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/A761.py +0 -0
  324. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A7X/__init__.py +0 -0
  325. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A821.py +0 -0
  326. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A841.py +0 -0
  327. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/A851.py +0 -0
  328. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A8X/__init__.py +0 -0
  329. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A9X/A921.py +0 -0
  330. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/A9X/__init__.py +0 -0
  331. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/Q/Q.py +0 -0
  332. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/Q/__init__.py +0 -0
  333. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/__init__.py +0 -0
  334. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/mini/__init__.py +0 -0
  335. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/mini/mini3.py +0 -0
  336. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/nano/__init__.py +0 -0
  337. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/avalonminer/nano/nano3.py +0 -0
  338. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1366.py +0 -0
  339. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1368.py +0 -0
  340. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1370.py +0 -0
  341. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/BM1397.py +0 -0
  342. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/BM/__init__.py +0 -0
  343. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/bitaxe/__init__.py +0 -0
  344. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/BMM/BMM1.py +0 -0
  345. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/BMM/__init__.py +0 -0
  346. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/braiins/__init__.py +0 -0
  347. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/DGX/DG1.py +0 -0
  348. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/DGX/__init__.py +0 -0
  349. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/elphapex/__init__.py +0 -0
  350. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/__init__.py +0 -0
  351. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/blockminer/__init__.py +0 -0
  352. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/epic/blockminer/blockminer.py +0 -0
  353. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/T/T3.py +0 -0
  354. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/T/__init__.py +0 -0
  355. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/fluminer/__init__.py +0 -0
  356. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/CK5.py +0 -0
  357. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/HS5.py +0 -0
  358. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/KD5.py +0 -0
  359. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/X5/__init__.py +0 -0
  360. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XBox/KDBox.py +0 -0
  361. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XBox/__init__.py +0 -0
  362. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XMax/KDMax.py +0 -0
  363. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/XMax/__init__.py +0 -0
  364. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/__init__.py +0 -0
  365. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/byte/__init__.py +0 -0
  366. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/byte/byte.py +0 -0
  367. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/mini_doge/__init__.py +0 -0
  368. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/goldshell/mini_doge/mini_doge.py +0 -0
  369. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/DX/D10.py +0 -0
  370. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/DX/__init__.py +0 -0
  371. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/hammer/__init__.py +0 -0
  372. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/ALX/AL3.py +0 -0
  373. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/ALX/__init__.py +0 -0
  374. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS0.py +0 -0
  375. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS1.py +0 -0
  376. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS2.py +0 -0
  377. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS3.py +0 -0
  378. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/KS5.py +0 -0
  379. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/KSX/__init__.py +0 -0
  380. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/iceriver/__init__.py +0 -0
  381. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A10X/A10X.py +0 -0
  382. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A10X/__init__.py +0 -0
  383. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/A11.py +0 -0
  384. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/A11M.py +0 -0
  385. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/A11X/__init__.py +0 -0
  386. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/T3X/T3H.py +0 -0
  387. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/T3X/__init__.py +0 -0
  388. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/innosilicon/__init__.py +0 -0
  389. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/LV07.py +0 -0
  390. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/LV08.py +0 -0
  391. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/LV/__init__.py +0 -0
  392. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/luckyminer/__init__.py +0 -0
  393. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/DX/D1.py +0 -0
  394. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/DX/__init__.py +0 -0
  395. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/volcminer/__init__.py +0 -0
  396. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20.py +0 -0
  397. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20P.py +0 -0
  398. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20S.py +0 -0
  399. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M20S_Plus.py +0 -0
  400. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21.py +0 -0
  401. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21S.py +0 -0
  402. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M21S_Plus.py +0 -0
  403. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/M29.py +0 -0
  404. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M2X/__init__.py +0 -0
  405. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30.py +0 -0
  406. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30K.py +0 -0
  407. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30L.py +0 -0
  408. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S.py +0 -0
  409. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S_Plus.py +0 -0
  410. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M30S_Plus_Plus.py +0 -0
  411. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31.py +0 -0
  412. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31H.py +0 -0
  413. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31L.py +0 -0
  414. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31S.py +0 -0
  415. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31SE.py +0 -0
  416. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M31S_Plus.py +0 -0
  417. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M32.py +0 -0
  418. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M32S.py +0 -0
  419. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33.py +0 -0
  420. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S.py +0 -0
  421. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S_Plus.py +0 -0
  422. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M33S_Plus_Plus.py +0 -0
  423. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M34S_Plus.py +0 -0
  424. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S.py +0 -0
  425. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S_Plus.py +0 -0
  426. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M36S_Plus_Plus.py +0 -0
  427. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/M39.py +0 -0
  428. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M3X/__init__.py +0 -0
  429. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50.py +0 -0
  430. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S.py +0 -0
  431. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S_Plus.py +0 -0
  432. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M50S_Plus_Plus.py +0 -0
  433. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M52S.py +0 -0
  434. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M52S_Plus_Plus.py +0 -0
  435. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53.py +0 -0
  436. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53H.py +0 -0
  437. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S.py +0 -0
  438. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S_Plus.py +0 -0
  439. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M53S_Plus_Plus.py +0 -0
  440. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M54S_Plus_Plus.py +0 -0
  441. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56.py +0 -0
  442. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S.py +0 -0
  443. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S_Plus.py +0 -0
  444. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M56S_Plus_Plus.py +0 -0
  445. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/M59.py +0 -0
  446. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M5X/__init__.py +0 -0
  447. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60.py +0 -0
  448. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S.py +0 -0
  449. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S_Plus.py +0 -0
  450. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M60S_Plus_Plus.py +0 -0
  451. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61.py +0 -0
  452. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61S.py +0 -0
  453. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M61S_Plus.py +0 -0
  454. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M62S_Plus.py +0 -0
  455. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63.py +0 -0
  456. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S.py +0 -0
  457. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S_Plus.py +0 -0
  458. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M63S_Plus_Plus.py +0 -0
  459. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M64.py +0 -0
  460. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M64S.py +0 -0
  461. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M65S.py +0 -0
  462. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M65S_Plus.py +0 -0
  463. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66.py +0 -0
  464. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S.py +0 -0
  465. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S_Plus.py +0 -0
  466. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M66S_Plus_Plus.py +0 -0
  467. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/M67S.py +0 -0
  468. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M6X/__init__.py +0 -0
  469. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M7X/M70.py +0 -0
  470. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/M7X/__init__.py +0 -0
  471. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/device/models/whatsminer/__init__.py +0 -0
  472. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/__init__.py +0 -0
  473. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/DGX/DG1.py +0 -0
  474. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/DGX/__init__.py +0 -0
  475. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/elphapex/daoge/__init__.py +0 -0
  476. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/__init__.py +0 -0
  477. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/T/T3.py +0 -0
  478. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/T/__init__.py +0 -0
  479. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/fluminer/native/__init__.py +0 -0
  480. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/__init__.py +0 -0
  481. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/CK5.py +0 -0
  482. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/HS5.py +0 -0
  483. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/KD5.py +0 -0
  484. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/X5/__init__.py +0 -0
  485. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XBox/KDBox.py +0 -0
  486. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XBox/__init__.py +0 -0
  487. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XMax/KDMax.py +0 -0
  488. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/XMax/__init__.py +0 -0
  489. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/__init__.py +0 -0
  490. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/byte/__init__.py +0 -0
  491. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/byte/byte.py +0 -0
  492. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/mini_doge/__init__.py +0 -0
  493. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/goldshell/bfgminer/mini_doge/mini_doge.py +0 -0
  494. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/__init__.py +0 -0
  495. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/DX/D10.py +0 -0
  496. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/DX/__init__.py +0 -0
  497. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/hammer/blackminer/__init__.py +0 -0
  498. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/__init__.py +0 -0
  499. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/ALX/AL3.py +0 -0
  500. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/ALX/__init__.py +0 -0
  501. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS0.py +0 -0
  502. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS1.py +0 -0
  503. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS2.py +0 -0
  504. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS3.py +0 -0
  505. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/KS5.py +0 -0
  506. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/KSX/__init__.py +0 -0
  507. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/iceriver/iceminer/__init__.py +0 -0
  508. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/__init__.py +0 -0
  509. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A10X/A10X.py +0 -0
  510. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A10X/__init__.py +0 -0
  511. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/A11.py +0 -0
  512. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/A11M.py +0 -0
  513. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/A11X/__init__.py +0 -0
  514. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/T3X/T3H.py +0 -0
  515. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/T3X/__init__.py +0 -0
  516. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/innosilicon/cgminer/__init__.py +0 -0
  517. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/listener.py +0 -0
  518. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/__init__.py +0 -0
  519. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/LV07.py +0 -0
  520. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/LV08.py +0 -0
  521. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/LV/__init__.py +0 -0
  522. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/luckyminer/espminer/__init__.py +0 -0
  523. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/__init__.py +0 -0
  524. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/DX/D1.py +0 -0
  525. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/DX/__init__.py +0 -0
  526. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/volcminer/blackminer/__init__.py +0 -0
  527. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/__init__.py +0 -0
  528. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20.py +0 -0
  529. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20P.py +0 -0
  530. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20S.py +0 -0
  531. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M20S_Plus.py +0 -0
  532. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21.py +0 -0
  533. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21S.py +0 -0
  534. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M21S_Plus.py +0 -0
  535. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/M29.py +0 -0
  536. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M2X/__init__.py +0 -0
  537. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30.py +0 -0
  538. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30K.py +0 -0
  539. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30L.py +0 -0
  540. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S.py +0 -0
  541. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S_Plus.py +0 -0
  542. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M30S_Plus_Plus.py +0 -0
  543. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31.py +0 -0
  544. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31H.py +0 -0
  545. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31L.py +0 -0
  546. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31S.py +0 -0
  547. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31SE.py +0 -0
  548. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M31S_Plus.py +0 -0
  549. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M32.py +0 -0
  550. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M32S.py +0 -0
  551. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33.py +0 -0
  552. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S.py +0 -0
  553. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S_Plus.py +0 -0
  554. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M33S_Plus_Plus.py +0 -0
  555. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M34S_Plus.py +0 -0
  556. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S.py +0 -0
  557. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S_Plus.py +0 -0
  558. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M36S_Plus_Plus.py +0 -0
  559. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/M39.py +0 -0
  560. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M3X/__init__.py +0 -0
  561. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50.py +0 -0
  562. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S.py +0 -0
  563. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S_Plus.py +0 -0
  564. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M50S_Plus_Plus.py +0 -0
  565. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M52S.py +0 -0
  566. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M52S_Plus_Plus.py +0 -0
  567. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53.py +0 -0
  568. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53H.py +0 -0
  569. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S.py +0 -0
  570. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S_Plus.py +0 -0
  571. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M53S_Plus_Plus.py +0 -0
  572. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M54S_Plus_Plus.py +0 -0
  573. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56.py +0 -0
  574. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S.py +0 -0
  575. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S_Plus.py +0 -0
  576. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M56S_Plus_Plus.py +0 -0
  577. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/M59.py +0 -0
  578. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M5X/__init__.py +0 -0
  579. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60.py +0 -0
  580. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S.py +0 -0
  581. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S_Plus.py +0 -0
  582. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M60S_Plus_Plus.py +0 -0
  583. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61.py +0 -0
  584. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61S.py +0 -0
  585. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M61S_Plus.py +0 -0
  586. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M62S_Plus.py +0 -0
  587. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63.py +0 -0
  588. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S.py +0 -0
  589. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S_Plus.py +0 -0
  590. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M63S_Plus_Plus.py +0 -0
  591. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M64.py +0 -0
  592. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M64S.py +0 -0
  593. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M65S.py +0 -0
  594. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M65S_Plus.py +0 -0
  595. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66.py +0 -0
  596. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S.py +0 -0
  597. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S_Plus.py +0 -0
  598. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M66S_Plus_Plus.py +0 -0
  599. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/M67S.py +0 -0
  600. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M6X/__init__.py +0 -0
  601. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M7X/M70.py +0 -0
  602. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/M7X/__init__.py +0 -0
  603. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/miners/whatsminer/btminer/__init__.py +0 -0
  604. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/misc/__init__.py +0 -0
  605. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/network/__init__.py +0 -0
  606. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/__init__.py +0 -0
  607. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/antminer.py +0 -0
  608. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/avalonminer.py +0 -0
  609. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/base.py +0 -0
  610. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bfgminer.py +0 -0
  611. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bmminer.py +0 -0
  612. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/bosminer.py +0 -0
  613. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/btminer.py +0 -0
  614. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/ccminer.py +0 -0
  615. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/cgminer.py +0 -0
  616. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/gcminer.py +0 -0
  617. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/luxminer.py +0 -0
  618. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/marathon.py +0 -0
  619. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/rpc/unknown.py +0 -0
  620. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/settings/__init__.py +0 -0
  621. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/__init__.py +0 -0
  622. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/antminer.py +0 -0
  623. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/base.py +0 -0
  624. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/ssh/braiins_os.py +0 -0
  625. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/test.py +0 -0
  626. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/__init__.py +0 -0
  627. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/antminer.py +0 -0
  628. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/auradine.py +0 -0
  629. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/avalonminer.py +0 -0
  630. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/base.py +0 -0
  631. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/__init__.py +0 -0
  632. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/better_monkey.py +0 -0
  633. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/boser.py +0 -0
  634. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/bosminer.py +0 -0
  635. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/__init__.py +0 -0
  636. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/__init__.py +0 -0
  637. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/bos/__init__.py +0 -0
  638. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/braiins_os/proto/braiins/bos/v1/__init__.py +0 -0
  639. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/elphapex.py +0 -0
  640. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/epic.py +0 -0
  641. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/espminer.py +0 -0
  642. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/fluminer.py +0 -0
  643. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/goldshell.py +0 -0
  644. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/hammer.py +0 -0
  645. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/hiveon.py +0 -0
  646. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/iceriver.py +0 -0
  647. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/innosilicon.py +0 -0
  648. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/luckyminer.py +0 -0
  649. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/marathon.py +0 -0
  650. {pyasic_umhost-0.3.0.dev1 → pyasic_umhost-0.3.0.dev3}/pyasic/web/mskminer.py +0 -0
  651. {pyasic_umhost-0.3.0.dev1 → 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
+ > ```
@@ -66,6 +66,7 @@ class AntminerModels(MinerModelType):
66
66
  S21PlusHydro = "S21+ Hydro"
67
67
  S21Pro = "S21 Pro"
68
68
  S21Hydro = "S21 Hydro"
69
+ S21eHydro = "S21e Hydro"
69
70
  T21 = "T21"
70
71
  S19XPHydro = "S19 XP Hydro"
71
72
  S19XPPlus = "S19 XP+"
@@ -18,6 +18,7 @@ from pyasic.miners.backends import AntminerModern
18
18
  from pyasic.miners.device.models import (
19
19
  S21,
20
20
  S21XP,
21
+ S21eHydro,
21
22
  S21Hydro,
22
23
  S21Plus,
23
24
  S21PlusHydro,
@@ -48,5 +49,8 @@ class BMMinerS21Hydro(AntminerModern, S21Hydro):
48
49
  class BMMinerS21XPHydro(AntminerModern, S21XPHydro):
49
50
  pass
50
51
 
52
+ class BMMinerS21eHydro(AntminerModern, S21eHydro):
53
+ pass
54
+
51
55
  class BMMinerS21XP(AntminerModern, S21XP):
52
56
  pass
@@ -15,6 +15,7 @@
15
15
  # ------------------------------------------------------------------------------
16
16
  from .S21 import (
17
17
  BMMinerS21,
18
+ BMMinerS21eHydro,
18
19
  BMMinerS21Hydro,
19
20
  BMMinerS21Plus,
20
21
  BMMinerS21PlusHydro,
@@ -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
- async def _is_mining(self, rpc_status: dict | None = None) -> bool | None:
1462
- return False
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 _is_sleep(self) -> bool:
1465
- # BTMiner V3 не поддерживает sleep-режим — sentinel-ответ для совместимости.
1466
- return False
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
  """Возвращает строку логов устройства"""
@@ -651,10 +651,7 @@ class BaseMiner(MinerProtocol):
651
651
  self.ip = ip
652
652
 
653
653
  if self.expected_chips is None and self.raw_model is not None:
654
- warnings.warn(
655
- f"Unknown chip count for miner type {self.raw_model}, "
656
- f"please open an issue on GitHub (https://github.com/UpstreamData/pyasic)."
657
- )
654
+ warnings.warn(f"Unknown chip count for miner type {self.raw_model}.")
658
655
 
659
656
  # interfaces
660
657
  if self._rpc_cls is not None: