43 lines
1.1 KiB
Python
43 lines
1.1 KiB
Python
# coding: utf8
|
||
import requests
|
||
from PySide6 import QtWidgets
|
||
|
||
SoftwareStatusRole = 0x0101
|
||
ExtensionStatusRole = 0x0102
|
||
ExtensionIdRole = 0x0103
|
||
|
||
|
||
def accept_warning(widget: QtWidgets.QWidget, condition: bool,
|
||
caption: str = "Warning", text: str = "Are you sure to continue?") -> bool:
|
||
if condition:
|
||
b = QtWidgets.QMessageBox.question(widget, caption, text)
|
||
if b == QtWidgets.QMessageBox.StandardButton.No:
|
||
return True
|
||
return False
|
||
|
||
|
||
def get_with_chained_keys(dic: dict, keys: list, default=None):
|
||
"""
|
||
调用 get_with_chained_keys(d, ["a", "b", "c"])
|
||
等同于 d["a"]["b"]["c"] ,
|
||
只不过中间任意一次索引如果找不到键,则返回 default
|
||
|
||
:param dic: 目标字典
|
||
:param keys: 键列表
|
||
:param default: 找不到键时的默认返回值
|
||
:return:
|
||
"""
|
||
k = keys[0]
|
||
if k not in dic:
|
||
return default
|
||
if len(keys) == 1:
|
||
return dic[k]
|
||
return get_with_chained_keys(dic[k], keys[1:], default)
|
||
|
||
|
||
def request_content(url: str) -> bytes:
|
||
req = requests.get(url)
|
||
if req.status_code == 200:
|
||
return req.content
|
||
return b""
|