diff --git a/uptime_kuma_api/api.py b/uptime_kuma_api/api.py index 273fdf7..36fe904 100644 --- a/uptime_kuma_api/api.py +++ b/uptime_kuma_api/api.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import datetime import json import random @@ -11,21 +13,28 @@ import requests import socketio from packaging.version import parse as parse_version -from . import AuthMethod -from . import DockerType -from . import Event -from . import IncidentStyle -from . import MaintenanceStrategy -from . import MonitorType -from . import NotificationType, notification_provider_options, notification_provider_conditions -from . import ProxyProtocol -from . import UptimeKumaException -from .docstrings import append_docstring, monitor_docstring, notification_docstring, proxy_docstring, \ - docker_host_docstring, maintenance_docstring, tag_docstring +from . import (AuthMethod, + DockerType, + Event, + IncidentStyle, + MaintenanceStrategy, + MonitorType, + NotificationType, + ProxyProtocol, + UptimeKumaException, + notification_provider_conditions, + notification_provider_options) +from .docstrings import (append_docstring, + docker_host_docstring, + maintenance_docstring, + monitor_docstring, + notification_docstring, + proxy_docstring, + tag_docstring) def int_to_bool(data, keys) -> None: - if type(data) == list: + if isinstance(data, list): for d in data: int_to_bool(d, keys) else: @@ -40,7 +49,7 @@ def gen_secret(length: int) -> str: def _convert_monitor_return(monitor) -> None: - if type(monitor["notificationIDList"]) == dict: + if isinstance(monitor["notificationIDList"], dict): monitor["notificationIDList"] = [int(i) for i in monitor["notificationIDList"].keys()] @@ -138,7 +147,7 @@ def _build_status_page_data( icon: str = "/icon.svg", publicGroupList: list = None -) -> (str, dict, str, list): +) -> tuple(str, dict, str, list): if theme not in ["light", "dark"]: raise ValueError if not domainNameList: @@ -473,9 +482,9 @@ class UptimeKumaApi(object): def _call(self, event, data=None) -> Any: r = self.sio.call(event, data) - if type(r) == dict and "ok" in r: + if isinstance(r, dict) and "ok" in r: if not r["ok"]: - raise UptimeKumaException(r["msg"]) + raise UptimeKumaException(r.get("msg")) r.pop("ok") return r @@ -594,7 +603,7 @@ class UptimeKumaApi(object): @property def version(self) -> str: info = self.info() - return info["version"] + return info.get("version") def _build_monitor_data( self, @@ -879,7 +888,7 @@ class UptimeKumaApi(object): # monitor - def get_monitors(self) -> list: + def get_monitors(self) -> list[dict]: """ Get all monitors. @@ -1092,7 +1101,7 @@ class UptimeKumaApi(object): with self.wait_for_event(Event.MONITOR_LIST): return self._call('deleteMonitor', id_) - def get_monitor_beats(self, id_: int, hours: int) -> list: + def get_monitor_beats(self, id_: int, hours: int) -> list[dict]: """ Get monitor beats for a specific monitor in a time range. @@ -1135,7 +1144,7 @@ class UptimeKumaApi(object): int_to_bool(r, ["important", "status"]) return r - def get_game_list(self) -> list: + def get_game_list(self) -> list[dict]: """ Get a list of games that are supported by the GameDig monitor type. @@ -1176,7 +1185,7 @@ class UptimeKumaApi(object): # Exists in 1.20.0 - 1.21.0 if not r: r = self._call('getGameList') - return r["gameList"] + return r.get("gameList") @append_docstring(monitor_docstring("add")) def add_monitor(self, **kwargs) -> dict: @@ -1294,7 +1303,7 @@ class UptimeKumaApi(object): # notification - def get_notifications(self) -> list: + def get_notifications(self) -> list[dict]: """ Get all notifications. @@ -1489,7 +1498,7 @@ class UptimeKumaApi(object): # proxy - def get_proxies(self) -> list: + def get_proxies(self) -> list[dict]: """ Get all proxies. @@ -1547,7 +1556,7 @@ class UptimeKumaApi(object): """ proxies = self.get_proxies() for proxy in proxies: - if proxy["id"] == id_: + if proxy.get("id") == id_: return proxy raise UptimeKumaException("proxy does not exist") @@ -1633,7 +1642,7 @@ class UptimeKumaApi(object): # status page - def get_status_pages(self) -> list: + def get_status_pages(self) -> list[dict]: """ Get all status pages. @@ -1914,7 +1923,7 @@ class UptimeKumaApi(object): # heartbeat - def get_heartbeats(self) -> list: + def get_heartbeats(self) -> list[dict]: """ Get heartbeats. @@ -1961,7 +1970,7 @@ class UptimeKumaApi(object): int_to_bool(i["data"], ["important", "status"]) return r - def get_important_heartbeats(self) -> list: + def get_important_heartbeats(self) -> list[dict]: """ Get important heartbeats. @@ -1994,7 +2003,7 @@ class UptimeKumaApi(object): int_to_bool(i["data"], ["important", "status"]) return r - def get_heartbeat(self) -> list: + def get_heartbeat(self) -> list[dict]: """ Get heartbeat. @@ -2021,7 +2030,7 @@ class UptimeKumaApi(object): # avg ping - def avg_ping(self) -> list: + def avg_ping(self) -> list[dict]: """ Get average ping. @@ -2042,7 +2051,7 @@ class UptimeKumaApi(object): # cert info - def cert_info(self) -> list: + def cert_info(self) -> list[dict]: """ Get certificate info. @@ -2063,7 +2072,7 @@ class UptimeKumaApi(object): # uptime - def uptime(self) -> list: + def uptime(self) -> list[dict]: """ Get monitor uptime. @@ -2162,7 +2171,7 @@ class UptimeKumaApi(object): # tags - def get_tags(self) -> list: + def get_tags(self) -> list[dict]: """ Get all tags. @@ -2717,7 +2726,7 @@ class UptimeKumaApi(object): # docker host - def get_docker_hosts(self) -> list: + def get_docker_hosts(self) -> list[dict]: """ Get all docker hosts. @@ -2862,7 +2871,7 @@ class UptimeKumaApi(object): # maintenance - def get_maintenances(self) -> list: + def get_maintenances(self) -> list[dict]: """ Get all maintenances. @@ -3251,7 +3260,7 @@ class UptimeKumaApi(object): """ return self._call('resumeMaintenance', id_) - def get_monitor_maintenance(self, id_: int) -> list: + def get_monitor_maintenance(self, id_: int) -> list[dict]: """ Gets all monitors of a maintenance. @@ -3309,7 +3318,7 @@ class UptimeKumaApi(object): """ return self._call('addMonitorMaintenance', (id_, monitors)) - def get_status_page_maintenance(self, id_: int) -> list: + def get_status_page_maintenance(self, id_: int) -> list[dict]: """ Gets all status pages of a maintenance. @@ -3365,7 +3374,7 @@ class UptimeKumaApi(object): # api key - def get_api_keys(self) -> list: + def get_api_keys(self) -> list[dict]: """ Get all api keys.