clan: Fix treefmt not applying mypy lints on clan_cli and clan_app

This commit is contained in:
Qubasa
2024-07-17 21:50:52 +02:00
parent 75f34bdf50
commit 8ad7c2b89a
3 changed files with 16 additions and 5 deletions

View File

@@ -13,10 +13,16 @@
treefmt.programs.deadnix.enable = true; treefmt.programs.deadnix.enable = true;
treefmt.programs.mypy.directories = { treefmt.programs.mypy.directories = {
"pkgs/clan-cli".extraPythonPackages = self'.packages.clan-cli.testDependencies; "pkgs/clan-cli" = {
"pkgs/clan-app".extraPythonPackages = extraPythonPackages = self'.packages.clan-cli.testDependencies;
# clan-app currently only exists on linux modules = [ "clan_cli" ];
(self'.packages.clan-app.externalTestDeps or [ ]) ++ self'.packages.clan-cli.testDependencies; };
"pkgs/clan-app" = {
extraPythonPackages =
# clan-app currently only exists on linux
(self'.packages.clan-app.externalTestDeps or [ ]) ++ self'.packages.clan-cli.testDependencies;
modules = [ "clan_app" ];
};
}; };
treefmt.programs.ruff.check = true; treefmt.programs.ruff.check = true;
treefmt.programs.ruff.format = true; treefmt.programs.ruff.format = true;

View File

@@ -40,6 +40,9 @@ no_implicit_optional = true
module = "argcomplete.*" module = "argcomplete.*"
ignore_missing_imports = true ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "clan_cli.*"
ignore_missing_imports = true
[tool.ruff] [tool.ruff]
target-version = "py312" target-version = "py312"

View File

@@ -8,6 +8,7 @@ from collections.abc import Callable
from graphlib import TopologicalSorter from graphlib import TopologicalSorter
from pathlib import Path from pathlib import Path
from tempfile import TemporaryDirectory from tempfile import TemporaryDirectory
from typing import Any
from clan_cli.cmd import run from clan_cli.cmd import run
@@ -71,7 +72,7 @@ def decrypt_dependencies(
) -> dict[str, dict[str, bytes]]: ) -> dict[str, dict[str, bytes]]:
generator = machine.vars_generators[generator_name] generator = machine.vars_generators[generator_name]
dependencies = set(generator["dependencies"]) dependencies = set(generator["dependencies"])
decrypted_dependencies = {} decrypted_dependencies: dict[str, Any] = {}
for dep_generator in dependencies: for dep_generator in dependencies:
decrypted_dependencies[dep_generator] = {} decrypted_dependencies[dep_generator] = {}
dep_files = machine.vars_generators[dep_generator]["files"] dep_files = machine.vars_generators[dep_generator]["files"]
@@ -242,6 +243,7 @@ def _generate_vars_for_machine(
# process generators in topological order # process generators in topological order
sorter = TopologicalSorter(graph) sorter = TopologicalSorter(graph)
for generator_name in sorter.static_order(): for generator_name in sorter.static_order():
assert generator_name is not None
machine_updated |= execute_generator( machine_updated |= execute_generator(
machine=machine, machine=machine,
generator_name=generator_name, generator_name=generator_name,