Skip to content

Commit 05c592d

Browse files
committed
Fix linter issues with StrEnum and parameters
1 parent 5782860 commit 05c592d

File tree

16 files changed

+41
-41
lines changed

16 files changed

+41
-41
lines changed

src/specfact_cli/generators/report_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from __future__ import annotations
44

55
import json
6-
from enum import Enum
6+
from enum import StrEnum
77
from pathlib import Path
88

99
from beartype import beartype
@@ -14,7 +14,7 @@
1414
from specfact_cli.utils.structured_io import StructuredFormat, dump_structured_file
1515

1616

17-
class ReportFormat(str, Enum):
17+
class ReportFormat(StrEnum):
1818
"""Report output format."""
1919

2020
MARKDOWN = "markdown"

src/specfact_cli/merge/resolver.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from __future__ import annotations
99

1010
from dataclasses import dataclass
11-
from enum import Enum
11+
from enum import StrEnum
1212
from typing import Any
1313

1414
from beartype import beartype
@@ -17,7 +17,7 @@
1717
from specfact_cli.models.project import BundleManifest, ProjectBundle
1818

1919

20-
class MergeStrategy(str, Enum):
20+
class MergeStrategy(StrEnum):
2121
"""Merge resolution strategy."""
2222

2323
AUTO = "auto" # Automatic resolution based on persona ownership
@@ -102,7 +102,7 @@ def resolve(
102102
if self._sections_disjoint(ours, theirs):
103103
# No conflicts - merge all changes
104104
merged = self._merge_sections(base, ours, theirs)
105-
return MergeResolution(merged_bundle=merged, conflicts=[], auto_resolved=0, manual_resolved=0, unresolved=0)
105+
return MergeResolution(merged, [], 0, 0, 0)
106106

107107
# Rule 2: Find conflicts and resolve based on persona ownership
108108
field_conflicts = self._find_conflicts(base, ours, theirs)
@@ -161,11 +161,11 @@ def resolve(
161161
conflicts.append(conflict)
162162

163163
return MergeResolution(
164-
merged_bundle=merged,
165-
conflicts=conflicts,
166-
auto_resolved=auto_resolved,
167-
manual_resolved=manual_resolved,
168-
unresolved=unresolved,
164+
merged,
165+
conflicts,
166+
auto_resolved,
167+
manual_resolved,
168+
unresolved,
169169
)
170170

171171
@beartype

src/specfact_cli/models/bridge.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
from enum import Enum
12+
from enum import StrEnum
1313
from pathlib import Path
1414

1515
from beartype import beartype
@@ -19,7 +19,7 @@
1919
from specfact_cli.utils.structured_io import StructuredFormat, dump_structured_file, load_structured_file
2020

2121

22-
class AdapterType(str, Enum):
22+
class AdapterType(StrEnum):
2323
"""Supported adapter types."""
2424

2525
SPECKIT = "speckit"

src/specfact_cli/models/change.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
from __future__ import annotations
1414

15-
from enum import Enum
15+
from enum import StrEnum
1616
from typing import Any
1717

1818
from icontract import ensure, require
@@ -22,7 +22,7 @@
2222
from specfact_cli.models.source_tracking import SourceTracking
2323

2424

25-
class ChangeType(str, Enum):
25+
class ChangeType(StrEnum):
2626
"""Change type for delta specs (tool-agnostic)."""
2727

2828
ADDED = "added"

src/specfact_cli/models/contract.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
from __future__ import annotations
1919

20-
from enum import Enum
20+
from enum import StrEnum
2121
from pathlib import Path
2222
from typing import Any
2323

@@ -26,7 +26,7 @@
2626
from pydantic import BaseModel, Field
2727

2828

29-
class ContractStatus(str, Enum):
29+
class ContractStatus(StrEnum):
3030
"""Contract status levels."""
3131

3232
DRAFT = "draft" # Initial contract, not validated

src/specfact_cli/models/deviation.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,22 @@
77

88
from __future__ import annotations
99

10-
from enum import Enum
10+
from enum import StrEnum
1111

1212
from beartype import beartype
1313
from icontract import ensure, require
1414
from pydantic import BaseModel, Field
1515

1616

17-
class DeviationSeverity(str, Enum):
17+
class DeviationSeverity(StrEnum):
1818
"""Deviation severity level."""
1919

2020
HIGH = "HIGH"
2121
MEDIUM = "MEDIUM"
2222
LOW = "LOW"
2323

2424

25-
class DeviationType(str, Enum):
25+
class DeviationType(StrEnum):
2626
"""Type of deviation."""
2727

2828
MISSING_FEATURE = "missing_feature"

src/specfact_cli/models/enforcement.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
"""Enforcement configuration models for quality gates."""
22

3-
from enum import Enum
3+
from enum import StrEnum
44

55
from beartype import beartype
66
from icontract import ensure, require
77
from pydantic import BaseModel, Field
88

99

10-
class EnforcementAction(str, Enum):
10+
class EnforcementAction(StrEnum):
1111
"""Actions that can be taken when a deviation is detected."""
1212

1313
BLOCK = "BLOCK" # Fail the validation (exit code 1)
1414
WARN = "WARN" # Show warning but continue (exit code 0)
1515
LOG = "LOG" # Only log, no warning (exit code 0)
1616

1717

18-
class EnforcementPreset(str, Enum):
18+
class EnforcementPreset(StrEnum):
1919
"""Predefined enforcement presets."""
2020

2121
MINIMAL = "minimal" # Log everything, never block

src/specfact_cli/models/persona_template.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,15 @@
88

99
from __future__ import annotations
1010

11-
from enum import Enum
11+
from enum import StrEnum
1212
from typing import Any
1313

1414
from beartype import beartype
1515
from icontract import ensure, require
1616
from pydantic import BaseModel, Field
1717

1818

19-
class SectionType(str, Enum):
19+
class SectionType(StrEnum):
2020
"""Section type classification."""
2121

2222
REQUIRED = "required" # Must be present in export/import

src/specfact_cli/models/project.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from collections.abc import Callable
1414
from concurrent.futures import ThreadPoolExecutor, as_completed
1515
from datetime import UTC, datetime
16-
from enum import Enum
16+
from enum import StrEnum
1717
from pathlib import Path
1818
from typing import Any
1919

@@ -33,7 +33,7 @@
3333
)
3434

3535

36-
class BundleFormat(str, Enum):
36+
class BundleFormat(StrEnum):
3737
"""Bundle format types."""
3838

3939
MONOLITHIC = "monolithic" # Single file with all aspects

src/specfact_cli/models/task.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77

88
from __future__ import annotations
99

10-
from enum import Enum
10+
from enum import StrEnum
1111

1212
from beartype import beartype
1313
from icontract import ensure, require
1414
from pydantic import BaseModel, Field
1515

1616

17-
class TaskPhase(str, Enum):
17+
class TaskPhase(StrEnum):
1818
"""Task execution phases."""
1919

2020
SETUP = "setup" # Project structure, dependencies, config
@@ -23,7 +23,7 @@ class TaskPhase(str, Enum):
2323
POLISH = "polish" # Tests, docs, optimization
2424

2525

26-
class TaskStatus(str, Enum):
26+
class TaskStatus(StrEnum):
2727
"""Task completion status."""
2828

2929
PENDING = "pending"

0 commit comments

Comments
 (0)