diff --git a/flake.nix b/flake.nix index e24d7d9b..3b289028 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,6 @@ flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; - }; outputs = diff --git a/pkgs/clan-cli/clan_cli/api/__init__.py b/pkgs/clan-cli/clan_cli/api/__init__.py index d18ac26e..29b3f45b 100644 --- a/pkgs/clan-cli/clan_cli/api/__init__.py +++ b/pkgs/clan-cli/clan_cli/api/__init__.py @@ -1,9 +1,10 @@ from collections.abc import Callable +from typing import Any class _MethodRegistry: - def __init__(self): - self._registry = {} + def __init__(self) -> None: + self._registry: dict[str, Callable] = {} def register(self, fn: Callable) -> Callable: self._registry[fn.__name__] = fn @@ -13,9 +14,10 @@ class _MethodRegistry: # Import only when needed import json from typing import get_type_hints + from clan_cli.api.util import type_to_dict - api_schema = { + api_schema: dict[str, Any] = { "$comment": "An object containing API methods. ", "type": "object", "additionalProperties": False, diff --git a/pkgs/clan-cli/clan_cli/api/util.py b/pkgs/clan-cli/clan_cli/api/util.py index f6ccab7b..9765a5fe 100644 --- a/pkgs/clan-cli/clan_cli/api/util.py +++ b/pkgs/clan-cli/clan_cli/api/util.py @@ -1,7 +1,7 @@ import dataclasses -from types import NoneType, UnionType -from typing import Any, Callable, Union, get_type_hints import pathlib +from types import NoneType, UnionType +from typing import Any, Union def type_to_dict(t: Any, scope: str = "") -> dict: @@ -46,7 +46,7 @@ def type_to_dict(t: Any, scope: str = "") -> dict: "type": "object", } - raise BaseException(f"Error api type not yet supported {str(t)}") + raise BaseException(f"Error api type not yet supported {t!s}") elif isinstance(t, type): if t is str: @@ -74,6 +74,6 @@ def type_to_dict(t: Any, scope: str = "") -> dict: if t is NoneType: return {"type": "null"} - raise BaseException(f"Error primitive type not supported {str(t)}") + raise BaseException(f"Error primitive type not supported {t!s}") else: - raise BaseException(f"Error type not supported {str(t)}") + raise BaseException(f"Error type not supported {t!s}") diff --git a/pkgs/clan-cli/clan_cli/machines/list.py b/pkgs/clan-cli/clan_cli/machines/list.py index be8903d5..ad77b78b 100644 --- a/pkgs/clan-cli/clan_cli/machines/list.py +++ b/pkgs/clan-cli/clan_cli/machines/list.py @@ -3,9 +3,10 @@ import json import logging from pathlib import Path +from clan_cli.api import API + from ..cmd import run from ..nix import nix_config, nix_eval -from clan_cli.api import API log = logging.getLogger(__name__) diff --git a/pkgs/clan-vm-manager/clan_vm_manager/views/webview.py b/pkgs/clan-vm-manager/clan_vm_manager/views/webview.py index 08a5901e..0c28ad01 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/views/webview.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/views/webview.py @@ -2,16 +2,16 @@ import json import logging import sys import threading -from threading import Lock from collections.abc import Callable from pathlib import Path -from typing import Any, Union +from threading import Lock +from typing import Any import gi gi.require_version("WebKit", "6.0") -from gi.repository import GLib, GObject, WebKit +from gi.repository import GLib, WebKit site_index: Path = ( Path(sys.argv[0]).absolute() diff --git a/pkgs/clan-vm-manager/clan_vm_manager/windows/main_window.py b/pkgs/clan-vm-manager/clan_vm_manager/windows/main_window.py index 393634af..5ec1fc12 100644 --- a/pkgs/clan-vm-manager/clan_vm_manager/windows/main_window.py +++ b/pkgs/clan-vm-manager/clan_vm_manager/windows/main_window.py @@ -2,7 +2,7 @@ import logging import threading import gi - +from clan_cli.api import API from clan_cli.history.list import list_history from clan_vm_manager.components.interfaces import ClanConfig @@ -14,11 +14,10 @@ from clan_vm_manager.views.list import ClanList from clan_vm_manager.views.logs import Logs from clan_vm_manager.views.webview import WebView -from clan_cli.api import API - gi.require_version("Adw", "1") from gi.repository import Adw, Gio, GLib, Gtk + from clan_vm_manager.components.trayicon import TrayIcon log = logging.getLogger(__name__) diff --git a/pkgs/clan-vm-manager/default.nix b/pkgs/clan-vm-manager/default.nix index 20f54225..d81bc97f 100644 --- a/pkgs/clan-vm-manager/default.nix +++ b/pkgs/clan-vm-manager/default.nix @@ -145,7 +145,7 @@ python3.pkgs.buildPythonApplication rec { # TODO: place webui in lib/python3.11/site-packages/clan_vm_manager postInstall = '' mkdir -p $out/clan_vm_manager/.webui - cp -r ${webview-ui}/dist/* $out/clan_vm_manager/.webui + cp -r ${webview-ui}/lib/node_modules/@clan/webview-ui/dist/* $out/clan_vm_manager/.webui ''; # Don't leak python packages into a devshell. diff --git a/pkgs/clan-vm-manager/shell.nix b/pkgs/clan-vm-manager/shell.nix index 71c8bdd1..4de1f494 100644 --- a/pkgs/clan-vm-manager/shell.nix +++ b/pkgs/clan-vm-manager/shell.nix @@ -56,7 +56,7 @@ mkShell { # Add the webview-ui to the .webui directory rm -rf ./clan_vm_manager/.webui/* mkdir -p ./clan_vm_manager/.webui - cp -a ${webview-ui}/dist/* ./clan_vm_manager/.webui + cp -a ${webview-ui}/lib/node_modules/@clan/webview-ui/dist/* ./clan_vm_manager/.webui chmod -R +w ./clan_vm_manager/.webui ''; }