chore(lint): restore green gate

This commit is contained in:
2026-09-04 22:55:49 +02:00
parent 31d62b39c2
commit 1893072b5d
9 changed files with 733 additions and 540 deletions
+5 -46
View File
@@ -26,56 +26,14 @@ if TYPE_CHECKING:
from pf1e_simulator.loaders.foundry import Json
from pf1e_simulator.abilities import (
ADOPTED,
ALERTNESS,
ARMOR_PROFICIENCY_LIGHT,
ARMOR_PROFICIENCY_MEDIUM,
AXE_TO_GRIND,
BITTER,
BORN_DAMNED,
BREEZE_KISSED,
BREW_POTION,
COMBAT_REFLEXES,
CRAFT_WONDROUS_ITEM,
DAZZLING_DISPLAY,
DODGE,
EXTRA_HEX,
ESCHEW_MATERIALS,
EXALTED_SOCIETY,
EXTREMELY_FASHIONABLE,
FATES_FAVORED,
FEY_TOUCHED,
FOCUSED_STUDY,
FORTIFIED_DRINKER,
FRIENDLY_FACE,
GIFTED_ADEPT,
GREAT_FORTITUDE,
GUNSMITHING,
HARMONIC_SPELL,
IRON_WILL,
LIKE_THE_WIND,
LIGHTNING_REFLEXES,
LONELY,
LARGER_THAN_LIFE,
MAW_OR_CLAW,
MOUNTED_COMBAT,
POINT_BLANK_SHOT,
POWER_ATTACK,
PRECISE_SHOT,
PREHENSILE_TAIL,
RAPID_RELOAD,
SACRED_SUMS,
SELECTIVE_CHANNELING,
SKILL_FOCUS_PERCEPTION,
SPELL_VULNERABILITY_DIVINATION,
STEALTH_SYNERGY,
SUMMON_GOOD_MONSTER,
THOROUGHBRED,
VAGABOND_CHILD,
WHISPERING_WIND,
VAGABOND_CHILD,
WHISPERING_WIND,
WEAPON_FINESSE,
AbilitySpec,
toughness,
weapon_focus,
@@ -175,16 +133,17 @@ def load_combatant(path: Path) -> Combatant:
_auto_attack_ids(data, monster_id)
# Resolve features (list of strings → list of AbilitySpec)
level = data.get("level", 1) if isinstance(data.get("level"), int) else 1
raw_level = data.get("level")
level = raw_level if isinstance(raw_level, int) and not isinstance(raw_level, bool) else 1
raw_features = data.pop("features", None)
validate_payload: dict[str, object] = dict(data)
if isinstance(raw_features, list):
# Type ignore: we assign AbilitySpec list into a Json dict before Pydantic validation
data["features"] = _resolve_features(raw_features, level) # type: ignore[assignment]
validate_payload["features"] = _resolve_features(raw_features, level)
# spells stays as list[str] — Pydantic validates it directly
try:
return Combatant.model_validate(data)
return Combatant.model_validate(validate_payload)
except ValidationError as exc:
raise CombatantLoadError(path, str(exc)) from exc