Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions src/codemodder/codetf/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,14 @@ def validate_description(self):
if self.description is not None and not self.description:
raise ValueError("description must not be empty")
return self


class Rating(BaseModel):
score: int
description: Optional[str] = None


class FixQuality(BaseModel):
safetyRating: Rating
effectivenessRating: Rating
cleanlinessRating: Rating
12 changes: 1 addition & 11 deletions src/codemodder/codetf/v2/codetf.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
from ..common import Change as CommonChange
from ..common import (
CodeTFWriter,
FixQuality,
Rule,
)

Expand Down Expand Up @@ -104,17 +105,6 @@ class Strategy(Enum):
deterministic = "deterministic"


class Rating(BaseModel):
score: int
description: Optional[str] = None


class FixQuality(BaseModel):
safetyRating: Rating
effectivenessRating: Rating
cleanlinessRating: Rating


class ChangeSet(BaseModel):
"""A set of changes made to a file at `path`"""

Expand Down
23 changes: 6 additions & 17 deletions src/codemodder/codetf/v3/codetf.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

from pydantic import BaseModel, model_validator

from ..common import Change, CodeTFWriter, Finding
from ..common import Change, CodeTFWriter, Finding, FixQuality
from ..v2.codetf import Finding as V2Finding


Expand Down Expand Up @@ -41,14 +41,14 @@ class FixStatus(BaseModel):
"""Metadata describing fix outcome"""

status: FixStatusType
reason: Optional[str]
details: Optional[str]
reason: Optional[str] = None
details: Optional[str] = None


class ChangeSet(BaseModel):
path: str
diff: str
changes: list[Change]
changes: list[Change] = []


class Reference(BaseModel):
Expand Down Expand Up @@ -88,27 +88,16 @@ class FixMetadata(BaseModel):
summary: str
# A detailed description of the fix
description: str
references: list[Reference]
references: list[Reference] = []
generation: GenerationMetadata


class Rating(BaseModel):
score: int
description: Optional[str] = None


class FixQuality(BaseModel):
safetyRating: Rating
effectivenessRating: Rating
cleanlinessRating: Rating


class FixResult(BaseModel):
"""Result corresponding to a single finding"""

finding: Finding | V2Finding
fixStatus: FixStatus
changeSets: list[ChangeSet]
changeSets: list[ChangeSet] = []
fixMetadata: Optional[FixMetadata] = None
fixQuality: Optional[FixQuality] = None
# A description of the reasoning process that led to the fix
Expand Down
Loading