switched cfg_util over to new version

This commit is contained in:
UpstreamData
2022-05-06 16:20:02 -06:00
parent 09660e1934
commit a8c685a883
24 changed files with 81 additions and 64 deletions

View File

@@ -48,7 +48,7 @@ A basic script to find all miners on the network and get the hashrate from them
```python ```python
import asyncio import asyncio
from network import MinerNetwork from network import MinerNetwork
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_hashrate(): async def get_hashrate():
@@ -84,7 +84,7 @@ You can also create your own miner without scanning if you know the IP:
import asyncio import asyncio
import ipaddress import ipaddress
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_hashrate(ip: str): async def get_miner_hashrate(ip: str):
@@ -103,7 +103,8 @@ async def get_miner_hashrate(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_hashrate(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_hashrate(str("192.168.1.69")))
``` ```
<br> <br>
@@ -112,7 +113,7 @@ Or generate a miner directly without the factory:
```python ```python
import asyncio import asyncio
from miners.bosminer import BOSMiner from miners.bosminer import BOSMiner
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_hashrate(ip: str): async def get_miner_hashrate(ip: str):
@@ -127,7 +128,8 @@ async def get_miner_hashrate(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_hashrate(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_hashrate(str("192.168.1.69")))
``` ```
<br> <br>
@@ -136,7 +138,7 @@ Or finally, just get the API directly:
```python ```python
import asyncio import asyncio
from API.bosminer import BOSMinerAPI from API.bosminer import BOSMinerAPI
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_hashrate(ip: str): async def get_miner_hashrate(ip: str):
@@ -152,7 +154,8 @@ async def get_miner_hashrate(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_hashrate(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_hashrate(str("192.168.1.69")))
``` ```
@@ -165,7 +168,7 @@ Now that you know that, lets move on to some common API functions that you might
import asyncio import asyncio
import ipaddress import ipaddress
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_pool_data(ip: str): async def get_miner_pool_data(ip: str):
@@ -189,7 +192,8 @@ async def get_miner_pool_data(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_pool_data(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_pool_data(str("192.168.1.69")))
``` ```
* Getting temperature data: * Getting temperature data:
@@ -204,7 +208,7 @@ A pretty good example of really trying to make this robust is in ```cfg_util.fun
import asyncio import asyncio
import ipaddress import ipaddress
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_temperature_data(ip: str): async def get_miner_temperature_data(ip: str):
@@ -223,7 +227,8 @@ async def get_miner_temperature_data(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_temperature_data(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_temperature_data(str("192.168.1.69")))
``` ```
* Getting power data: * Getting power data:
@@ -234,7 +239,7 @@ How about data on the power usage of the miner? This one only works for Whatsmi
import asyncio import asyncio
import ipaddress import ipaddress
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_power_data(ip: str): async def get_miner_power_data(ip: str):
@@ -249,7 +254,8 @@ async def get_miner_power_data(ip: str):
# send the command # send the command
tunerstatus = await miner.api.tunerstatus() tunerstatus = await miner.api.tunerstatus()
# parse the return # parse the return
data = await safe_parse_api_data(tunerstatus, 'TUNERSTATUS', 0, "PowerLimit") data = await safe_parse_api_data(tunerstatus, 'TUNERSTATUS', 0,
"PowerLimit")
else: else:
# send the command # send the command
# whatsminers have the power info in summary # whatsminers have the power info in summary
@@ -261,7 +267,8 @@ async def get_miner_power_data(ip: str):
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_power_data(str("192.168.1.69"))) asyncio.new_event_loop().run_until_complete(
get_miner_power_data(str("192.168.1.69")))
``` ```
* Multicommands: * Multicommands:
@@ -273,7 +280,7 @@ How about we get the current pool user and hashrate in 1 command?
import asyncio import asyncio
import ipaddress import ipaddress
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.func.parse_data import safe_parse_api_data from tools.cfg_util_old.func.parse_data import safe_parse_api_data
async def get_miner_hashrate_and_pool(ip: str): async def get_miner_hashrate_and_pool(ip: str):
@@ -286,15 +293,16 @@ async def get_miner_hashrate_and_pool(ip: str):
# Get the API data # Get the API data
api_data = await miner.api.multicommand("pools", "summary") api_data = await miner.api.multicommand("pools", "summary")
if "pools" in api_data.keys(): if "pools" in api_data.keys():
user = await safe_parse_api_data(api_data, "pools", 0, "POOLS", 0, "User") user = await safe_parse_api_data(api_data, "pools", 0, "POOLS", 0,
"User")
print(user) print(user)
if "summary" in api_data.keys(): if "summary" in api_data.keys():
hashrate = await safe_parse_api_data(api_data, "summary", 0, "SUMMARY", 0, "MHS av") hashrate = await safe_parse_api_data(api_data, "summary", 0, "SUMMARY",
0, "MHS av")
print(hashrate) print(hashrate)
if __name__ == '__main__': if __name__ == '__main__':
asyncio.new_event_loop().run_until_complete(get_miner_hashrate_and_pool(str("192.168.1.9"))) asyncio.new_event_loop().run_until_complete(
get_miner_hashrate_and_pool(str("192.168.1.9")))
``` ```

View File

@@ -1 +1,10 @@
from tools.cfg_util.cfg_util_sg import main from .ui import ui
import asyncio
def main():
asyncio.run(ui())
if __name__ == "__main__":
main()

View File

@@ -1,7 +1,7 @@
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.cfg_util_qt.layout import window from tools.cfg_util.layout import window
from tools.cfg_util.cfg_util_qt.tables import TableManager from tools.cfg_util.tables import TableManager
from tools.cfg_util.cfg_util_qt.decorators import disable_buttons from tools.cfg_util.decorators import disable_buttons
@disable_buttons("Flashing Lights") @disable_buttons("Flashing Lights")

View File

@@ -1,12 +1,12 @@
import PySimpleGUI as sg import PySimpleGUI as sg
from config.bos import bos_config_convert from config.bos import bos_config_convert
import time import time
from tools.cfg_util.cfg_util_qt.layout import window, update_prog_bar from tools.cfg_util.layout import window, update_prog_bar
from tools.cfg_util.cfg_util_qt.decorators import disable_buttons from tools.cfg_util.decorators import disable_buttons
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
import asyncio import asyncio
from settings import CFG_UTIL_CONFIG_THREADS as CONFIG_THREADS from settings import CFG_UTIL_CONFIG_THREADS as CONFIG_THREADS
from tools.cfg_util.cfg_util_qt.general import update_miners_data from tools.cfg_util.general import update_miners_data
progress_bar_len = 0 progress_bar_len = 0

View File

@@ -1,5 +1,5 @@
from tools.cfg_util.cfg_util_qt.layout import window from tools.cfg_util.layout import window
from tools.cfg_util.cfg_util_qt.layout import BUTTON_KEYS from tools.cfg_util.layout import BUTTON_KEYS
def disable_buttons(status: str = ""): def disable_buttons(status: str = ""):

View File

@@ -2,10 +2,10 @@ import asyncio
import webbrowser import webbrowser
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from tools.cfg_util.cfg_util_qt.decorators import disable_buttons from tools.cfg_util.decorators import disable_buttons
from tools.cfg_util.cfg_util_qt.layout import TABLE_KEYS from tools.cfg_util.layout import TABLE_KEYS
from tools.cfg_util.cfg_util_qt.layout import window, update_prog_bar from tools.cfg_util.layout import window, update_prog_bar
from tools.cfg_util.cfg_util_qt.tables import TableManager from tools.cfg_util.tables import TableManager
progress_bar_len = 0 progress_bar_len = 0

View File

@@ -2,6 +2,8 @@ import PySimpleGUI as sg
from .imgs import WINDOW_ICON from .imgs import WINDOW_ICON
sg.set_options(font=("Liberation Mono", 10))
TABLE_HEADERS = { TABLE_HEADERS = {
"SCAN": [ "SCAN": [
"IP", "IP",

View File

@@ -2,9 +2,9 @@ import asyncio
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from network import MinerNetwork from network import MinerNetwork
from tools.cfg_util.cfg_util_qt.decorators import disable_buttons from tools.cfg_util.decorators import disable_buttons
from tools.cfg_util.cfg_util_qt.layout import window, update_prog_bar from tools.cfg_util.layout import window, update_prog_bar
from tools.cfg_util.cfg_util_qt.tables import clear_tables, TableManager from tools.cfg_util.tables import clear_tables, TableManager
progress_bar_len = 0 progress_bar_len = 0

View File

@@ -1,13 +1,12 @@
from tools.cfg_util.cfg_util_qt.layout import ( from tools.cfg_util.layout import (
MINER_COUNT_BUTTONS, MINER_COUNT_BUTTONS,
TABLE_KEYS, TABLE_KEYS,
TABLE_HEADERS, TABLE_HEADERS,
window, window,
) )
from tools.cfg_util.cfg_util_qt.imgs import TkImages, LIGHT, FAULT_LIGHT from tools.cfg_util.imgs import TkImages, LIGHT, FAULT_LIGHT
import PySimpleGUI as sg import PySimpleGUI as sg
import ipaddress import ipaddress
from datetime import datetime
def update_miner_count(count): def update_miner_count(count):

View File

@@ -1,28 +1,26 @@
import PySimpleGUI as sg import PySimpleGUI as sg
import asyncio import asyncio
import sys import sys
from tools.cfg_util.cfg_util_qt.imgs import FAULT_LIGHT, TkImages from tools.cfg_util.imgs import TkImages
from tools.cfg_util.cfg_util_qt.scan import btn_scan from tools.cfg_util.scan import btn_scan
from tools.cfg_util.cfg_util_qt.commands import ( from tools.cfg_util.commands import (
btn_light, btn_light,
btn_reboot, btn_reboot,
btn_backend, btn_backend,
btn_command, btn_command,
) )
from tools.cfg_util.cfg_util_qt.configure import ( from tools.cfg_util.configure import (
generate_config_ui, generate_config_ui,
btn_import, btn_import,
btn_config, btn_config,
) )
from tools.cfg_util.cfg_util_qt.layout import window from tools.cfg_util.layout import window
from tools.cfg_util.cfg_util_qt.general import btn_all, btn_web, btn_refresh from tools.cfg_util.general import btn_all, btn_web, btn_refresh
from tools.cfg_util.cfg_util_qt.tables import TableManager from tools.cfg_util.tables import TableManager
import tkinter as tk import tkinter as tk
sg.set_options(font=("Liberation Mono", 10))
async def ui():
async def main():
window.read(0) window.read(0)
# create images used in the table, they will not show if not saved here # create images used in the table, they will not show if not saved here
@@ -121,4 +119,4 @@ async def main():
if __name__ == "__main__": if __name__ == "__main__":
asyncio.run(main()) asyncio.run(ui())

View File

@@ -0,0 +1 @@
from tools.cfg_util_old.cfg_util_sg import main

View File

@@ -2,7 +2,7 @@ import asyncio
import sys import sys
import logging import logging
from tools.cfg_util.cfg_util_sg.ui import ui from tools.cfg_util_old.cfg_util_sg.ui import ui
# initialize logger and get settings # initialize logger and get settings

View File

@@ -1,4 +1,4 @@
from tools.cfg_util.cfg_util_sg.layout import window from tools.cfg_util_old.cfg_util_sg.layout import window
def disable_buttons(func): def disable_buttons(func):

View File

@@ -6,8 +6,8 @@ import time
import aiofiles import aiofiles
import toml import toml
from tools.cfg_util.cfg_util_sg.func.ui import update_ui_with_data from tools.cfg_util_old.cfg_util_sg.func.ui import update_ui_with_data
from tools.cfg_util.cfg_util_sg.layout import window from tools.cfg_util_old.cfg_util_sg.layout import window
from config.bos import bos_config_convert, general_config_convert_bos from config.bos import bos_config_convert, general_config_convert_bos

View File

@@ -5,16 +5,16 @@ import warnings
import logging import logging
from API import APIError from API import APIError
from tools.cfg_util.cfg_util_sg.func.parse_data import safe_parse_api_data from tools.cfg_util_old.cfg_util_sg.func.parse_data import safe_parse_api_data
from tools.cfg_util.cfg_util_sg.func.ui import ( from tools.cfg_util_old.cfg_util_sg.func.ui import (
update_ui_with_data, update_ui_with_data,
update_prog_bar, update_prog_bar,
set_progress_bar_len, set_progress_bar_len,
) )
from tools.cfg_util.cfg_util_sg.layout import window from tools.cfg_util_old.cfg_util_sg.layout import window
from miners.miner_factory import MinerFactory from miners.miner_factory import MinerFactory
from config.bos import bos_config_convert from config.bos import bos_config_convert
from tools.cfg_util.cfg_util_sg.func.decorators import disable_buttons from tools.cfg_util_old.cfg_util_sg.func.decorators import disable_buttons
from settings import ( from settings import (
CFG_UTIL_CONFIG_THREADS as CONFIG_THREADS, CFG_UTIL_CONFIG_THREADS as CONFIG_THREADS,
CFG_UTIL_REBOOT_THREADS as REBOOT_THREADS, CFG_UTIL_REBOOT_THREADS as REBOOT_THREADS,

View File

@@ -1,7 +1,7 @@
import ipaddress import ipaddress
import re import re
from tools.cfg_util.cfg_util_sg.layout import window from tools.cfg_util_old.cfg_util_sg.layout import window
import pyperclip import pyperclip

View File

@@ -3,12 +3,12 @@ import sys
import PySimpleGUI as sg import PySimpleGUI as sg
import tkinter as tk import tkinter as tk
from tools.cfg_util.cfg_util_sg.layout import ( from tools.cfg_util_old.cfg_util_sg.layout import (
window, window,
generate_config_layout, generate_config_layout,
send_ssh_cmd_layout, send_ssh_cmd_layout,
) )
from tools.cfg_util.cfg_util_sg.func.miners import ( from tools.cfg_util_old.cfg_util_sg.func.miners import (
send_config, send_config,
miner_light, miner_light,
refresh_data, refresh_data,
@@ -19,15 +19,15 @@ from tools.cfg_util.cfg_util_sg.func.miners import (
reboot_miners, reboot_miners,
send_miners_ssh_commands, send_miners_ssh_commands,
) )
from tools.cfg_util.cfg_util_sg.func.files import ( from tools.cfg_util_old.cfg_util_sg.func.files import (
import_iplist, import_iplist,
import_config_file, import_config_file,
export_iplist, export_iplist,
export_config_file, export_config_file,
export_csv, export_csv,
) )
from tools.cfg_util.cfg_util_sg.func.decorators import disable_buttons from tools.cfg_util_old.cfg_util_sg.func.decorators import disable_buttons
from tools.cfg_util.cfg_util_sg.func.ui import ( from tools.cfg_util_old.cfg_util_sg.func.ui import (
sort_data, sort_data,
copy_from_table, copy_from_table,
table_select_all, table_select_all,